Наблюдение за вставкой новых узлов DOM и вызов метода на них - PullRequest
1 голос
/ 30 июня 2010

Я пишу некоторый JavaScript, используя jQuery для вызова метода на всех узлах с классом datepicker.

Вот что у меня есть:

$('.datepicker').my_method();

Это работает как ожидалось - он вызывает my_method.

Однако я хочу иметь возможность вызывать my_method на всех новых узлах, которые вставляются в DOM с классом datepicker.

Мне нужна функциональность, аналогичная методу .live, без указания eventType.

Как мне это сделать?

1 Ответ

4 голосов
/ 30 июня 2010

Это то, для чего .livequery плагин предназначен для:)

Вы используете его вот так

$('.datepicker').livequery(function() {
  $(this).my_method();
});

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

$.ajax({
  //options..
  success: function(data) {
    $("#elementId").html(data);
    $(".datepicker", data).my_method();
  }
});

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

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