Vấn đề về chiều cao tự động của JQuery Accordion


76

Tôi đang sử dụng JQuery Accordion. Tôi có trang này ở đây: http://www.hauppauge.com/site/support/support_colossus.html#tabs-6

Điều xảy ra là Chiều cao tự động đang mất một khoảng thời gian để tải, trước khi tải có rất nhiều khoảng trắng bên dưới nội dung. Cuối cùng khi nó tải xong, chiều cao sẽ mở rộng thành dài hơn sau đó bắt kịp với chiều cao chính xác của nội dung. Có cách nào để việc này được liền mạch không? Tôi chỉ muốn có thể nhấp vào tab Accordion và để nó mở rộng mượt mà đến chiều cao chính xác của nội dung.

Cập nhật 08/08/2014:

Sử dụng heightStyle: "content"nếu bạn đang sử dụng phiên bản 1.9 trở lên ( câu trả lời của Tarun )

Sử dụng autoHeight: falsecho 1.8 trở xuống (câu trả lời của iappwebdev)


Bạn đang áp dụng chiều cao cho 274một nơi nào đó. cố gắng loại bỏ nó hoặc ít nhất là giảm nó.
Imdad

Tôi vừa tìm kiếm cái này và tôi không biết tôi có cái này ở đâu. Bạn thấy điều đó như thế nào? Cảm ơn bạn!
Kim

Kiểm tra bằng Firebug. chiều cao mặc định là 274nó không phải là nhiều
Imdad

Câu trả lời:


57

Vậy tại sao bạn không đặt autoheightthành false?

$( ".selector" ).accordion({ autoHeight: false });

http://jqueryui.com/demos/accordion/#option-autoHeight

BIÊN TẬP

Nhìn vào bình luận của bạn:

// Accordion
$("#accordion").accordion({ header: "h3" });
$("#accordion").accordion({ collapsible: true });
$("#accordion").accordion({ autoHeight: false, navigation: true });

Bạn đang khởi tạo đàn accordion và sau đó bạn thêm nhiều tùy chọn hơn cho nó. Tại sao bạn làm việc đó? Giá trị mặc định cho autoHeighttrue, vì vậy mọi tab đều có chiều cao cố định. Đặt tất cả các tùy chọn trong một cuộc gọi:

// Accordion
$("#accordion").accordion({
    header: "h3",
    collapsible: true,
    autoHeight: false,
    navigation: true 
});



BIÊN TẬP

Về nhận xét thứ 2 của bạn:

Hãy xem tại http://jqueryui.com/demos/accordion/#option-header . Bạn có thể thấy tùy chọn đó h3được đặt theo mặc định, vì vậy bạn không cần phải đặt nó trong cuộc gọi của mình.

Và bạn nhận được câu trả lời cho câu hỏi của mình ở đây: JQuery accordion không hoạt động nếu không có thẻ h3 .

Điều khá quan trọng là phải sử dụng API jQuery để nâng cao kiến ​​thức của bạn. Đối với API jQuery, hãy truy cập vào http://api.jquery.com/ và cho giao diện người dùng jQuery, hãy truy cập http://jqueryui.com/demos/ . Nếu bạn có thêm bất kỳ câu hỏi nào, đừng ngần ngại hỏi sau khi bạn đã cố gắng giải quyết vấn đề của mình và sau khi bạn thực hiện một số nghiên cứu.

Nếu tất cả điều này trả lời câu hỏi của bạn, vui lòng đánh dấu nó là câu trả lời đúng.


Tôi đã làm, đây là những gì tôi có: // Accordion $ ("# accordion"). Accordion ({header: "h3"}); $ ("# accordion"). accordion ({có thể thu gọn: true}); $ ("# accordion"). accordion ({autoHeight: false, navigation: true});
Kim

Điều đó đã hiệu quả! Cảm ơn bạn rất nhiều! Như bạn có thể nói tôi đang học. Tôi thực sự đánh giá cao sự giúp đỡ của bạn với điều này! Nó đã khiến tôi phát điên. Bạn có tình cờ biết tại sao tiêu đề: "h3" là cần thiết không? Nó sẽ không hoạt động bình thường nếu không có nó. Cảm ơn một lần nữa!
Kim

Cảm ơn liên kết API, tôi sẽ xem xét qua đó. Tôi quen thuộc với liên kết demo, đó là nơi tôi nhận được rất nhiều mã từ đó. Tôi nghĩ điều khiến tôi bối rối là tôi cũng lấy mã từ trang này [ hauppauge.com/jquery/index.html][1] [1]: hauppauge.com/jquery/index.html được tải xuống từ JQuery và ở đó họ sử dụng h3 . Tôi mới làm quen với điều này nhưng chắc chắn sẽ đọc qua trang API. Cảm ơn một lần nữa!
Kim

Tùy chọn {autoHeight: false} không được ghi lại trong API: api.jqueryui.com/accordion Cảm ơn!
Marc Maxmeister

164

bạn nên sử dụng

$("#accordion").accordion({ 

heightStyle: "content" 

});

Nó sẽ đặt chiều cao theo nội dung của bạn. và sẽ không sử dụng không gian trống làm chiều cao.


8
thích. đơn giản ngắn và tốt nhất của tất cả, nó hoạt động :)
Evorlor

5
Cảm ơn bạn, đã cố gắng autoHeight: false... nhưng không, điều này đã làm các trick
Pierre

1
Đây là câu trả lời tốt nhất! Thích - thay đổi câu trả lời được chấp nhận TA!
NFlows

1
Miễn là bạn đang sử dụng jQuery UI 1.9 trở lên, đây là câu trả lời tốt nhất, như OP đã đề cập trong bản chỉnh sửa của mình.
BobRodes

1
Phù, tiết kiệm rất nhiều thời gian. Cảm ơn. Làm việc hoàn hảo.
Makarand Mane

15
$("#accordion").accordion({ 

heightStyle: "content" 

});

Điều này đang hoạt động trong phiên bản mới của nó đã làm việc cho tôi !!!


0

Điều này đã làm việc cho tôi.

$( ".accordion" ).accordion({ 
 autoHeight: false,
 collapsible: true,
 navigation: true 
 });

0

Nếu không có gì hoạt động cho đến nay, chỉ cần thay đổi kích thước của jQuery Accordion contentElement- nó được gọi data-contenttheo mặc định, trừ khi bạn định cấu hình nó theo cách khác:

$('.accordion').find('[data-content]').resize();

Điều này cũng sẽ hoạt động nếu bạn muốn thay đổi kích thước Accordion sau khi dữ liệu của bạn được tải động.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.