Работа с событиями в jQuery-ui

Если нужно из виджета стриггерить событие, это сделать это можно двумя способами:

this.element.trigger( 'my_event_element', { option1: true } );
this._trigger( '_my_event_widget', null, { option1: true } );

Допустим, что наш виджет называется MyCoolWidget. Тогда поймать наши события можно так:

$( '#div' ).MyCoolWidget();
$( '#div' ).
	bind( 'my_event_element', function( Event, Ui ) { console.dir( Ui ) } ).
	bind( 'mycoolwidget_my_event_widget', function( Event, Ui ) { console.dir( Ui ) } );

Обратите внимание на второй bind — префиксом к событию в этом случае явлется название виджета в нижнем регистре.

Кстати, есть ещё один способ обработать событие от this._trigger — передать в options параметр-функцию с названием, равным стригерённому событию:

$( '#div' ).MyCoolWidget( { _my_event_widget: function( Event, Ui ) { console.dir( Ui ) } } );

Полезная ссылка — http://www.erichynds.com/jquery/tips-for-developing-jquery-ui-widgets/

LEAVE A COMMENT