2013-08-30 2 views
2

У меня есть два класс .btnn и .sleep_avail иногда я меняю CSS на якоре от .btnn к .sleep_availНажмите событие не работает для динамически изменившегося класса в JQuery

Теперь у меня есть две функций для анкерных мыши

$('.btnn').click(function() { 
    alert('yes btn'); 
}); 

и Второй один является

$('.sleep_avail').click(function() { 
    alert('yes sleep'); 
}); 

Теперь, когда я нажимаю на якорь с классом sleep_avail, который изменяется динамически из btnn класса событие, написанные для btnn подняли и я получаю ответ соответственно. Но мне нужно, чтобы событие для sleep_avail было поднято. Незлая помощь.

+0

Есть много много много сообщений с этим вопросом. поиск в SO. –

+0

Скрипка, объясняющая шаги по воспроизведению проблем, и то, что является желаемым эффектом, поможет много – fcalderan

ответ

8

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

$(document).on('#event','#selector',function() {...}); 

так вот

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

Поскольку обработчики событий связываются с текущим элементами, они должны существовать на странице, когда .on() называется

1

попробовать

$(document).on('click','.sleep_avail',function() { 
2

Здесь работает DEMOhttp://jsfiddle.net/ARBdU/

$(document).on('click','.btnn, .sleep_avail',function() { 
if($(this).hasClass('btnn')) 
{ 
    ... 
} 
else if($(this).hasClass('sleep_avail')) 
{  
    ... 
} 
}); 
Смежные вопросы