2012-05-28 28 views
12

Tôi đang cố thêm một lớp bổ sung vào hộp thoại jQuery của mình với thuộc tính dialogClass. Đây là javascript:Sự cố thêm lớp vào hộp thoại jquery ui

$(function(){ 
    $("#toogleMAmaximized").dialog({ 
      title: 'Missions and Achivments', 
      autoOpen: false, 
      height: 500, 
      width: 700, 
      modal: true, 
      dialogClass: 'noPadding', 
      buttons: { 
        Cancel: function() { 
          $(this).dialog("close"); 
        } 
      }, 
      close: function() { 
        allFields.val("").removeClass("ui-state-error"); 
      } 

    }) 
    $("#toogleMAminimized").click(function() { 
      $("#toogleMAmaximized").dialog("open"); 
      $("#toogleMAmaximized").dialog({dialogClass:'noPadding'}); 
    }); 
}) 

<div id="toogleMAminimized" style="" class="noPadding"> 
<div class="" style="cursor: pointer;position: absolute;right: 0;top: 45px;"><img src ="images/MAminimized.png" alt="missions and achivments"/></div> 
</div> 

Chỉ trong trường hợp bạn cần nó, mã html của tôi

<div id="toogleMAmaximized" > 
<div id="missions"> 
    <div id="mission1" missiontitle="A new home!" missionpoint="1" missionicon="images/missions/icon/anewhome-icon.png" missionimage="images/missions/anewhome.png" made="f" class="mission notDone"> </div> 
</div> 
<div id="achivments"> 
    <div id="achivment1" achivmenttitle="Lucha sin cuartel!" achivmentpoint="10" achivmenticon="images/achivments/icon/1.png" achivmentimage="images/achivments/icon/luchasincuartel-plata-ico.png" made="t" class="achivment done"> </div> 
</div> 
</div> 

Như bạn thấy, tôi đã cố gắng thêm lớp bằng nhiều cách, tôi đã thử tất cả các kết hợp có thể có nhưng vẫn giữ được kết quả tương tự: không có noPadding lớp

+0

'dialogClass' [hoạt động cho tôi] (http://jsfiddle.net/QHJKm/). Mã của bạn [cũng hoạt động cho tôi] (http://jsfiddle.net/QHJKm/1/). – Sampson

+0

phiên bản nào của "Giao diện người dùng jQuery"? Tôi đang sử dụng 'jQuery UI 1.8.16'. Chỉ cần nhìn thấy nó được sử dụng 1.8.18 cho tôi kiểm tra xem. Ty! –

+0

[Nó hoạt động] (http://jsfiddle.net/QHJKm/3/) với 1.8.16. – Sampson

Trả lời

10

Lớp noPadding của bạn đang được thêm thành công vào hộp thoại. Tôi đã xác nhận điều này bằng cách đặt đánh dấu của bạn và các kịch bản trong một fiddle, và tải jQuery UI 1.8.16 (phiên bản bạn đã thử nghiệm với). Kiểm tra này có sẵn trực tuyến tại http://jsfiddle.net/QHJKm/3/.

Tôi nghi ngờ sự nhầm lẫn ở đây là với hiệu ứng mong đợi noPadding sẽ có trên hộp thoại. Nó có thể là bạn giải thích thiếu hiệu quả của nó như là một dấu hiệu cho thấy nó không được thêm vào để bắt đầu. Như bạn sẽ lưu ý trong ví dụ của tôi, tôi đã có một phong cách khá táo bạo, một nền màu đỏ. Điều này nhanh chóng xác nhận rằng lớp thực sự đang được thêm vào hộp thoại.

+0

im rất bối rối ở đây, làm thế nào tôi có thể tiếp tục gỡ lỗi này? cách duy nhất tôi có được lớp 'noPadding' là hardcording nó trong' toogleMAmaximized' div nó tự. Tôi có thể bị hỏng 1.8.16 không? Tôi đang tải xuống phiên bản mới ngay bây giờ. –

+0

Ồ !, bây giờ tôi hiểu những gì bạn đang nói! nó không được thêm vào 'toogleMAmaximized' như tôi mong đợi nhưng với phần tử div trước đã được tạo! (một thuộc tính rol = dialog cho bất kỳ ai không quen thuộc với nó). Ok, do đó, điều duy nhất còn lại cần làm là thêm lớp vào div thực, ngay sau hộp thoại ("mở"), cảm ơn bạn! –

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