2011-09-07 26 views
11

Đây là mã HTML:JQuery Dialog phương thức lựa chọn không làm việc

<div id="dialog" title="lala" style="display:none;"> 
     <p>This is the default dialog which is useful for displaying information. The dialog window can be moved, resized and closed with the 'x' icon.</p> 
</div> 

Đây là hoạt Javascript

$bb('#addTopicButton').live('click',function() { 

    $bb("#dialog").dialog({ modal:true, closeOnEscape: false, draggable:false, resizable:false }); 

     }); 

Tại sao phương thức không hoạt động? Khi nó được mở, tôi vẫn có thể nhấp vào các liên kết khác trên trang và làm những việc trong nền.

Thanks a lot

UPDATE: Có vẻ như được làm việc mặc dù. Chỉ có các liên kết hoạt động trong nền và làm việc. Làm cách nào để vô hiệu hóa mọi thứ, bao gồm cả các liên kết?

+0

Bạn có file CSS có liên quan ở đúng nơi? Khi tôi nhớ lại, phương thức hoạt động bằng cách đặt lớp phủ phía sau hộp thoại ngăn người dùng nhấp vào bất kỳ thứ gì khác. Lớp phủ này yêu cầu một số CSS nhất định hoạt động. –

+0

Tôi không có css, ở đâu/làm thế nào tôi nên xác định nó? – Andrew

+0

nó đi kèm với jqueryui –

Trả lời

19

Có thể bạn chỉ cần bao gồm CSS giao diện người dùng jQuery vào trang của mình.

Google có này trên CDN của nó ở đây:

http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/themes/base/jquery-ui.css

Lựa chọn phương thức trên hộp thoại tạo một lớp phủ dưới thoại của bạn, nhưng so với phần còn lại của nội dung. Lớp phủ này cần jQuery UI CSS để hoạt động chính xác.

+1

Đó là nó! Cảm ơn rất nhiều, rực rỡ, không biết làm thế nào tôi có thể quên nó – Andrew

+1

Dễ dàng của nó, tôi làm điều đó tất cả các thời gian. Đã dành một giờ cố gắng để có được jquery để làm việc ngày khác trên một trang mới và đã quên bao gồm jquery – Brad

16

Chỉ gặp vấn đề tương tự. Tôi cần CSS, nhưng tôi không muốn tất cả. Vì vậy, tôi chỉ cần sao chép dán phần này trong mã CSS của riêng tôi:

.ui-widget-overlay { 
    position: absolute; 
    top: 0; 
    left: 0; 
    width: 100%; 
    height: 100%; 
    background: #aaaaaa; 
    opacity: 0.3; 
} 
+0

Đơn giản và cho điểm. Cảm ơn. Làm việc cho tôi :) –

+0

Cảm ơn bạn đã trỏ phần cần thiết của tệp .css ra :) – Vinzenz

+0

Tuyệt vời !! Tôi cảm thấy câm vì không nghĩ về điều này trước đây: P – ettdro

13

Thêm chỉ .ui-widget lớp phủ để css của bạn sẽ làm cho lớp phủ xuất hiện ở phía trên hoàn tất, và thậm chí cả hộp thoại sẽ không sử dụng được.

Do đó, lớp .ui-front quá nên được bổ sung:

.ui-widget-overlay { 
    position: fixed; 
    top: 0; 
    left: 0; 
    width: 100%; 
    height: 100%; 
} 
.ui-front { 
    z-index: 100; 
} 
+0

Tốt hơn nhiều trong trường hợp của tôi hơn là bao gồm toàn bộ kiểu cơ sở từ jQ-UI. Cảm ơn nhiều! – Arvid

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