JQuery живой или что-то подобное с .change () - PullRequest
4 голосов
/ 28 августа 2009

Я хочу сделать это: http://docs.jquery.com/Events/live#typefn

Только .live () не поддерживает событие изменения - есть идеи для обхода?

Необходимо привязать функцию к некоторым элементам DOM "на лету", но не до изменения.

Ответы [ 5 ]

4 голосов
/ 07 апреля 2010

Примечание: jQuery 1.4 теперь поддерживает функцию live для всех обычных событий. До недавнего времени он не работал с IE8, но я считаю, что это исправлено в jQuery 1.4.2. См. Этот решенный тикет jQuery: IE8 НЕ ПОДДЕРЖИВАЕТ ИЗМЕНЕНИЕ СОБЫТИЯ ПРИ ИСПОЛЬЗОВАНИИ LIVE

3 голосов
/ 05 октября 2009

Плагин LiveQuery поддерживает все события.

2 голосов
/ 28 августа 2009

О, это было не так уж и плохо, я просто обернул его в прямую трансляцию по клику, и это сработало просто отлично.

<code>
$("#foo").live("click", function(){
  $('.fu').change(function(){
    blah blah blah
  });
});
2 голосов
/ 28 августа 2009

Хорошо, после того, как Функа прокомментировал мою первую попытку ответить на мой собственный вопрос, у меня теперь есть это:

<code>
$('.foo').change(function test(){
  $(fu).prependTo("#some-div").bind("change", test)
  $(this).unbind("change",test)
};

Который свяжет функцию с каждым элементом при его создании и отсоединит его от того, который был создан до него. Это решает мою проблему с пользовательским интерфейсом, но я новичок в obvs, поэтому я действительно открыт для обучения, если я что-то упустил снова! ;)

0 голосов
/ 28 августа 2009

До появления .live () в jQuery 1.3 у меня был большой успех с плагином Arian Flesler "listen".

http://flesler.blogspot.com/search/label/jQuery.Listen

Я полагаю, что вы сможете сделать это на событии изменения с помощью этого плагина.

...