jquery - потерять click () событие после вызова ajax? - PullRequest
4 голосов
/ 07 июня 2010

На следующей веб-странице liamharding.com / pgi.php У меня есть панель параметров в левой части страницы, которая открывается и закрывается при нажатии на стрелку панели, это работает нормально, пока вы не выберите рынок (для тестирования используйте один из рынков «Случайного блуждания» и нажмите «Показать / обновить графики»), затем он выполняет вызов ajax с использованием функции get_graph(forexName, myCount, divIsNew).

После завершения этого вызова отображаются графики, а затем событие click () на моих панелях параметров не работает?

Вызов ajax возвращает данные в переменной ajax_data, проблема возникает, когда я выполняю следующий код var jq_ajax_data = $("<div/>").html(ajax_data);. Мне нужно обернуть его так, чтобы я мог извлечь данные из него с помощью jQuery. Если эта строка кода закомментирована, событие click () работает нормально ??

Надеюсь, кто-нибудь может помочь, я потратил много времени, но не могу найти, в чем проблема.

Ответы [ 3 ]

19 голосов
/ 31 января 2013

Вы НЕ должны использовать .live, как было рекомендовано выше, теперь оно устарело.Вместо этого вы должны использовать .on например

$(document).on('click', '.selector', function(){
    //Your code here
});
6 голосов
/ 07 июня 2010

Трудно точно сказать, что приводит к потере события щелчка, не видя полного кода, но вы можете попробовать настроить щелчок как живое событие, например:

$("#clickableItem").live("click", function() { 
    //do stuff
});
5 голосов
/ 07 июня 2010

Вы заменяете содержимое div новым html.новый html не будет иметь назначенных ему событий щелчка.

Используйте команду .live , чтобы вашим элементам всегда были назначены события щелчка.

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