2013-12-20 3 views
0

Моя страница состоит из меню и тела, и обе они имеют div. Когда открывается страница, я добавляю к обработчику событий элементов div, используя метод «on», и все работает отлично. Но тело можно перезагрузить с помощью ajax. Я понимаю, что div в теле не работает, и я хочу добавить к нему обработчик событий. Я пытаюсь несколько вещей, но главная проблема заключается в том, что когда я добавляю обработчик событий для div, он также добавляется в элемент div в моем меню. и когда я нажимаю на меню, событие div срабатывает два раза. Я стараюсь использовать такую ​​конструкциюДобавление и удаление обработчиков событий в html elemts

$('.div-element').off().on('click', function(){///}); 

, но это не имеет никакого эффекта. Пожалуйста, советьте что-нибудь.

+0

Лучше бы использовать делегирование –

+0

^^ то, что он сказал -> '$ (документ) .он ('щелчок', '.div-элемент', функция() { ///}); ' – adeneo

ответ

3
$(document).on('click','.div-element', function(){///}); 

дать выстрел

0

Поскольку body перезагружается с помощью ajax, чтобы убедиться, что вы сохраняете events вы прикреплены к div's внутри body, вы должны использовать jQuery'sdelegated events. Например:

$('body').on('click', 'div', function(event){ 
//code for event handler 
}) 

Это позволит убедиться, что events добавлены в div's сохраняются даже после body перезагрузки.

0

Попробуйте это:

$('body').on('click','.div-element', function(){///}); 
Смежные вопросы