jQuery переустанавливает функции после вызова ajax - PullRequest
0 голосов
/ 27 декабря 2011

У меня есть некоторые проблемы с .load:

Мой сайт использует эту строку кода для переключения кнопки:

$('.button').click(function(){
// my button function
});

Я написал небольшой вызов ajax для загрузки divбез перезагрузки, но действие кнопки не установлено:

$("#ajax-load").load('/ #content',function(){
    $('#ajax-load .button').click(function(){
    // my button function
    });
});

Это не работает, контент отображается правильно, но JS не работает в обновленном контенте.

Любые идеи?

Ответы [ 3 ]

2 голосов
/ 27 декабря 2011

Попробуйте вместо этого:

$('#ajax-load').on('click','.button',function(){
    // my button function
});

http://api.jquery.com/on/

0 голосов
/ 27 декабря 2011

Если вы используете jQuery <1.7, используйте <a href="http://api.jquery.com/delegate/" rel="nofollow">.delegate(), в противном случае используйте .on().

Вы должны не использовать live .

0 голосов
/ 27 декабря 2011

Вы пытались использовать jQuery.live ?live свяжет действия со всеми существующими и будущими вхождениями вашего селектора.Так что если у вас есть:

$('.button').live('click', function(){ });

Это должно работать с существующими .button элементами и будущими.

Редактировать: в jQuery 1.7 вы должны использовать jQuery.on вместо live.

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