2010-03-25 39 views
14

tôi đang tạo ra một hộp thoại như trong trang này:Khi tạo một hộp thoại với jquery, làm thế nào để ẩn div hộp thoại?

http://jqueryui.com/demos/dialog/#modal-confirmation

(nhấp vào xem nguồn)

ở phía dưới là div đó được đặt trong hộp thoại. Hộp thoại hoạt động hoàn hảo khi được gọi bằng javascript nhưng hộp thoại hiển thị ở cuối trang khi nó tải. (trừ tất cả kiểu dáng được áp dụng khi được hàm javascript gọi)

Làm cách nào để ẩn div và vẫn cho phép hộp thoại sử dụng? Tôi đã thử thiết lập style = "visibility: hidden" nhưng điều đó ngăn cản nó được hiển thị khi được gọi bởi javascript.

Trả lời

31

Đây có thể là một câu hỏi ngu ngốc, nhưng thay vì "visibility:hidden" bạn đã thử "display:none;" chưa? Tôi đã phải giải quyết vấn đề tương tự cho một dự án mà tôi đang làm việc và tôi chắc chắn hiển thị chắc chắn: không ai làm việc.

Bạn cũng có thể sử dụng tùy chọn

$(foo).dialog({ autoOpen: false }); 

để "khởi tạo" hộp thoại (như vậy, che giấu nó và tất cả những thứ tốt). Điểm duy nhất là, bạn có thể sẽ thấy hộp thoại "nhấp nháy" khi trang tải nhưng trước khi jQuery có cơ hội ẩn nó.

+0

display: none is the way $ .hide() hoạt động, và tôi chắc chắn jQuery UI đang sử dụng nó trong tình huống này. – JKirchartz

+0

Cảm ơn bạn đã hoàn hảo :) – stormist

+1

Bạn đã làm gì với màn hình: none hoặc autoOpen: false? – R0MANARMY

Các vấn đề liên quan