Методы jQuery 1.7 on () и off () для динамических элементов - PullRequest
21 голосов
/ 06 ноября 2011
Методы

jQuery 1.7 .on() и .off() должны заменить .live() и тому подобное.

Я пробовал это с динамическим элементом:

 $(".myList").on('click', function(e){
  alert('hello world');
 });

У меня это не работает для элементов, добавленных после загрузки DOM.

Является ли код над допустимым примером для методов .on() и .off() в jQuery 1.7?

Ответы [ 3 ]

33 голосов
/ 06 ноября 2011

См. http://blog.jquery.com/2011/11/03/jquery-1-7-released/ для примеров live () -> on / off () (и других).

Это их пример для преобразования в on:

$('a').live('click', fn);
$(document).on('click', 'a', fn);

Итак, ваш пример становится следующим:

$(document).on('click', '.myList', function(e){
  alert('hello world');
});
4 голосов
/ 06 ноября 2011

Вот небольшой пример:

http://jsfiddle.net/zzSjK/

<script type="text/javascript">
    $(function(){
        $(document).on('click','.clickme' , function(e){
          addtext()
        });
        function addtext() {
            $('.myList').append('<div class="clickme">click me</div>')
        }
    })
</script>

<div class="myList">
    <div class="clickme">-click-</div>
</div>
2 голосов
/ 09 января 2013

«Связать» с:

$(document).on('click','.myDiv',function(){ ... });

И "отсоединить" с помощью:

$(document).off('click','.myDiv');
...