2011-08-05 12 views
10

Opracowałem wtyczkę jquery i naprawdę nie mogę zrozumieć, której z tych metod użyć. Zgodnie z dokumentacją jQuery UI należy używać _trigger do wyzwalania zdarzeń, pozwala to przewodnicy być inicjowane z wtyczką jakjquery ui _trigger vs trigger

$("#id").pluginname({ 
    click: function(){ 
     //called when clicked 
    } 
}); 

Ale jeśli później chcesz dołączyć więcej słuchaczy na to wydarzenie nie mogę znaleźć jakiś sposób, aby to zrobić. Próbuję użyć powiązania jquery, ale to nie działa. przykład:

$("#id").bind("click", function(){ 
    //This does not get fired on click if using _trigger 
}) 

Jedynym rozwiązaniem mam tak daleko jest do ognia obie, ale czuje się trochę dziwne. Mój kod musi wykonać następujące czynności do pracy:

$("#id").pluginname({ 
    click: function(){ 
    //called when my plugin uses this._trigger('click') 
    } 
}).bind(function(){ 
    //called when my plugin uses this.element.trigger('click') 
}); 

Używam zdarzeń niestandardowych, ale nie sądzę, że było istotne dla zadając to pytanie. Ktoś ma pomysł na temat używania łańcuchów zdarzeń podczas używania _trigger()?

Odpowiedz

10

należy powiązać tak:

$("#id").bind("pluginnameclick", function(){ 
+0

Witam, nie jestem w stanie uzyskać to do pracy, czy masz jakieś odniesienia do jakiejkolwiek dokumentacji, którą mogę przeczytać, aby lepiej to zrozumieć? – Tommy

+0

hmm. Przepraszamy, nie pamiętam żadnych. Wypróbuj to - http://www.erichynds.com/jquery/tips-for-developing-jquery-ui-widgets/ (szukaj "dialogopen") – bullgare

+6

Witam, dziękuję za odpowiedź. na szczęście znalazłem komentarz na stronie, która mówi, że nazwa wydarzenia została zamieniona na małą literę. Mój przykład w tym przypadku nie przyjął, że miałem wydarzenie z nazwą przypadku wielbłąda. Oznacza to jednak, że Twoja sugestia jest poprawna. Wielkie dzięki za pomoc mi w tej sprawie. – Tommy

4

należy użyć this._on i this._trigger to zrobić tak, że wydarzenia sprzątany op kiedy niszcząc widget.

inaczej trzeba rozpiąć zdarzenia samemu lub w inny widżet nie był sprzątany przez zbierania śmieci przeglądarki

nadzieję, że to odpowiada na twoje pytanie

+0

Zastanawiasz się, czy jest w tym jakaś dokumentacja? – Giraldi