2013-04-12 5 views
0

Я понимаю, что я могу использовать .on для связывания функций с элементами DOM, когда какое-то событие происходит на элементе.Как создать виджеты JQuery-UI динамически

Я использую JQuery-ui, и я хочу создать различные элементы JQuery-ui после их загрузки на страницу. Например, создать кнопку, когда один загружен на странице:

$(document.body).on('load', '.my-button', function(){ 
    $(this).button() 
}); 

Однако, это не работает (на самом деле, обработчик никогда не достигается).

Как я могу создавать виджеты JQuery-ui, когда они загружаются в DOM?

+0

Вы не можете. Вместо этого инициализируйте их, когда они будут добавлены. '$ (" ") .appendTo (" body "). Button();' –

+0

Событие 'load' никогда не запускается, потому что« Событие загрузки отправляется элементу, когда он и все подэлементы были полностью загруженное. Это событие может быть отправлено любому элементу, связанному с URL: изображениями, сценариями, фреймами, iframe и объектом window. ". Ваша кнопка - ни одна из них. Когда вы хотите, чтобы событие произошло точно? – Danny

+0

Я использую 'button' в качестве примера, но так же легко было бы« автозаполнение »или« аккордеон ». Нет ли способа инициализировать их с помощью '.on'? – NT3RP

ответ

0

jQuery не создает никаких событий при создании элемента. Вместо этого используйте the watch plugin и запустите button() s оттуда.