Какое событие / метод jQuery можно использовать для привязки к динамической кнопке перед щелчком? - PullRequest
1 голос
/ 09 июля 2010

Я пытаюсь прикрепить плагин jQuery к динамически генерируемой кнопке. Я пробовал следующее безуспешно:

$('.myButton').live('click', function() {
    $(this).file().choose(function(e, input) {
        // ...
    });
});

Полагаю, это не работает, поскольку плагину требуется привязка до клика.

Итак, я попытался ...

$('.myButton').load(function() { ... });

и (впадая в отчаяние) ...

$('.myButton').live('load', function() { ... });

Какой метод я могу использовать, чтобы связать вновь созданную кнопку до того, как пользователь нажмет на нее?

Ответы [ 2 ]

1 голос
/ 09 июля 2010

Вы можете связать его при создании, например, если он генерируется $.ajax(), то это будет выглядеть так:

$.ajax({
  //options...
  success: function(data) {
    //do stuff
    $(".myButton", data).file().choose(...);
  }
});

Важной частью является , data, мы даем селектор a context для его поиска, так что это только поиск кнопок, которые были загружены в ответ. Эта же техника применима и к методам успеха на других $.ajax() сокращенных версиях .


Если это не вариант, то доступен маршрут не как исполнитель. Вы можете использовать .livequery() плагин , который активно ищет и воздействует на новые элементы, независимо от источника. В этом случае ваш код будет выглядеть так:

$(".myButton").livequery(function() {
  $(this).file().choose(...);
});
1 голос
/ 09 июля 2010

нужно добавить код:

    $('.myButton').live('click', function() {
        $(this).file().choose(function(e, input) {
        // ...
        });
    });

ПОСЛЕ того, как вы динамически добавили свою кнопку (поэтому в основном добавьте ее в процедуру, которая добавляет динамическую кнопку).

джим

...