2012-05-28 18 views
12

Próbuję dodać dodatkową klasę do mojego okna dialogowego jQuery z właściwością dialogClass. Oto javascript:Problemy z dodawaniem klasy do okna dialogowego 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> 

Tylko w przypadku, gdy jej potrzebujesz, mój kod html

<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> 

Jak widać, próbowałem dodać klasę na wiele sposobów, próbowałem wszystko możliwe kombinacje, ale wciąż uzyskuje się ten sam wynik: brak noPadding klasa

+0

'dialogClass' [działa dla mnie] (http://jsfiddle.net/QHJKm/). Twój kod [również działa dla mnie] (http://jsfiddle.net/QHJKm/1/). – Sampson

+0

jakiej wersji 'jQuery UI'? używam 'jQuery UI 1.8.16'. Właśnie zobaczyłem, że użył 1.8.18 pozwól mi to sprawdzić. Ty! –

+0

[Działa) (http://jsfiddle.net/QHJKm/3/) także z wersją 1.8.16. – Sampson

Odpowiedz

10

Twoja klasa noPadding jest pomyślnie dodawana do okna dialogowego. Potwierdziłem to, umieszczając twoje znaczniki i skrypty w skrzypcach i ładując jQuery UI 1.8.16 (wersję, z której testowałeś). Ten test jest dostępny online pod adresem http://jsfiddle.net/QHJKm/3/.

Podejrzewam, że zamieszanie jest tutaj z oczekiwanym skutkiem, ponieważ noPadding będzie mieć na samym oknie dialogowym. Możliwe, że zinterpretowałeś jej brak efektu jako wskazówkę, że nie został dodany na początku. Jak zauważysz w moim przykładzie, mam dość śmiały styl, czerwone tło. To szybko potwierdza, że ​​klasa rzeczywiście jest dodawana do okna dialogowego.

+0

jestem bardzo zdezorientowany tutaj, jak mogę dalej to debugować? Jedynym sposobem uzyskania klasy 'noPadding' jest jej zapisanie w' toogleMAmaximized' div it self. Czy mogę mieć zepsuty 1.8.16? teraz pobieram nową wersję. –

+0

Oh !, teraz rozumiem, co mówisz! nie jest on dodawany do 'toogleMAmaximized', tak jak oczekiwałbym, ale do wcześniej utworzonego elementu div! (ten, który ma właściwość rol = dialog dla każdego, kto go nie zna). Ok, więc jedyną rzeczą do zrobienia jest dodanie klasy do prawdziwego div, zaraz po oknie dialogowym ("otwarte"), dziękuję! –

Powiązane problemy