Я пытаюсь присоединить плагин jQuery к динамично сгенерированной кнопке. Я попробовал следующее без успеха:
$('.myButton').live('click', function() {
$(this).file().choose(function(e, input) {
// ...
});
});
Я предполагаю, что это не работает сменными потребностями, связывающими перед щелчком.
Таким образом, я попробовал...
$('.myButton').load(function() { ... });
и (получение отчаянного теперь)...
$('.myButton').live('load', function() { ... });
Какой метод я могу использовать для привязки недавно сгенерированной кнопки, прежде чем пользователь нажмет на него?
Вы можете привязать его при создании, например если он сгенерирован $. ajax ()
, то он будет выглядеть так:
$.ajax({
//options...
success: function(data) {
//do stuff
$(".myButton", data).file().choose(...);
}
});
Важная часть - это , data
, мы даем селектору контекст для поиска, поэтому он находит только те кнопки, которые были загружены в ответ. Этот же метод применяется к методам успеха в других сокращенных версиях $ .ajax ()
.
Если это не вариант, значит, доступен неэффективный маршрут. Вы можете использовать плагин .livequery ()
, который активно ищет и воздействует на новые элементы, независимо от источника. В этом случае ваш код будет выглядеть так:
$(".myButton").livequery(function() {
$(this).file().choose(...);
});
вам нужно добавить код:
$('.myButton').live('click', function() {
$(this).file().choose(function(e, input) {
// ...
});
});
ПОСЛЕ того, как вы динамически добавили вашу кнопку (так что, по сути, добавьте его в процедуру, которая добавляет динамическую кнопку).
jim