2009-11-05 16 views
11

Jak mogę sprawdzić, czy wtyczka jQuery UI jest dołączona do elementu? Na przykład, jeśli załaduję widżet .system, w jaki sposób można ustalić jego obecność?Jak sprawdzić, czy wtyczka jQuery UI jest dołączona do elementu?

Celem tego pytania jest to, że chciałbym móc przełączać .sortable na elementy. Mając możliwość zobaczenia, że ​​.sportable jest obecny, mógłbym wtedy wywołać .sable ("destroy"), aby go usunąć.

Odpowiedz

13

Wszystkie widgety interfejsu użytkownika dołączają swoją nazwę do danych kontenera elementu. jqueryui dodaje także wyrażenie filtru danych.

var $elem = $('div.sortable-container:data(sortable)'); 
if ($elem.length){ 
    // $elem contains list of elements that have sortable widget attached 
} 
+1

Sprawdzanie, czy styl CSS jest stosowany, jest świetne, ale jest to trochę bardziej wyraźne i podoba mi się. Dzięki Corey! – Jay

+0

Świetne rozwiązanie, a ja jestem zaskoczony, że trzeba było tak samo przeszukać sieć, jak to się stało, aby ją znaleźć. Mógłbym chociaż sprawić, by stało się bardziej oczywiste, że tak się dzieje? –

1

Wszystkie widżety interfejsu użytkownika mają klasę ui-widget. Zazwyczaj każdy widget dodaje także klasę widgetu do głównego elementu. W takim przypadku powinieneś zobaczyć ui-sortable dodany do sortowalnego pojemnika.

+0

Świetna odpowiedź, dzięki Kevin. – Jay

3

Jeśli ktoś szuka tego rozwiązania w późniejszych wersjach jQueryUI, nazwa kontenera danych użytkownika z plugin sortable jest teraz uiSortable i nie sortable. Im przy jQueryUI 1,10

tj znaleźć elementy można korzystać

var $elem = $('#sortable-container:data(uiSortable)'); 

i znaleźć elementy, które nie zostały jeszcze zainicjowane

var $elem = $('#sortable-container:not(:data(uiSortable))'); 
5

Od jQuery UI 1.8, specjalne selektorów are being added to Sizzle for each widget. Są one w postaci :ui-widgetname.

celu sprawdzenia obecności sortable widget na elemencie, można więc używać:

if(element.is(':ui-sortable')) { 
    element.sortable('destroy'); 
} 
+0

krótkie i proste –

Powiązane problemy