Вызов методов jquery для динамически добавляемых элементов - PullRequest
7 голосов
/ 15 марта 2011

Мы можем сделать все элементы класса 'button' кнопками пользовательского интерфейса JQuery, используя следующие

$('.button').button();

Но что, если мы хотим, чтобы любые будущие элементы добавлялись также как кнопки пользовательского интерфейса.

Как мы можем этого достичь?

Ответы [ 4 ]

2 голосов
/ 15 марта 2011

Боюсь, вам придется явно вызывать метод после добавления элемента.

например, если вы добавляете кнопку в div с идентификатором xyz, тогда

$("#xyz").append(" <button>").button();

Я все еще ищу лучшее решение и выложу , если Я найду одно

1 голос
/ 15 марта 2011

Если вы добавляете их в четко определенном месте, тогда вы можете просто сделать что-то вроде:

var newButton = $("<input>", { type: "button" });
$("body").append(newButton);
newButton.button();

Или вы можете использовать плагин LiveQuery (как предложено JohnP) и прослушайте события добавления DOM:

$(".button").livequery(function() { $(this).button(); });
0 голосов
/ 15 марта 2011

Возможно, вы захотите использовать метод delegate. Вы можете найти больше об этом здесь: http://api.jquery.com/delegate/

$('yourSelector').yourHandler();

становится

$('yourSelector').delegate('yourHandler');
0 голосов
/ 15 марта 2011

Вы сможете использовать livequery для повторной инициализации вызовов плагинов: http://brandonaaron.net/code/livequery/docs

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...