2013-09-24 4 views
1

Я пробовал методы «on», «live» и «delegate» в jQuery, но ничего не работает.jQuery на событии клика, не работающем над переключенным классом

Что я хочу сделать, это когда пользователь нажимает кнопку входа с классом .signin, чтобы переключить класс с именем .menu-open. и затем, я хочу предупредить что-то, когда я снова нажимаю на эту кнопку!

$(document).ready(function() { 
$(".signin").click(function(e) {   
    e.preventDefault(); 
    $(".signin").toggleClass("menu-open"); 
}); 
$('.menu-open').on('click', function() { 
    alert("SUCCESS"); 
}); 
}); 

ответ

1

пожалуйста, вы можете удалить эту линию

e.preventDefault(); 

preventDefault:

Если этот метод вызывается, действие по умолчанию события не срабатывает.

использовал этот код:

$(document).ready(function() { 
$(".signin").click(function() { 
    $(this).toggleClass("menu-open"); 
    $(".menu-open").bind("click", function() { 
    alert("SUCCESS"); 
    });  
}); 
}); 

работает нормально, проверьте здесь

Demo

+0

Okey, который отлично работает, но теперь проблема заключается в том, что после переключения на удаление класса .menu-open', когда я нажимаю элемент только с классом '.signin', он предупреждает! Я хочу предупредить об этом только тогда, когда класс существует. http://jsfiddle.net/AMLm6/1/ –

3

Это потому, что на странице загрузки нет элемента с классом .menu-open в документе, так что запрос молча терпит неудачу , вы должны делегировать событие.

$(document).on('click', '.menu-open', function() { 
    alert("SUCCESS"); 
}); 

Обратите внимание, что с помощью статического родительского элемента является более эффективным, чем при использовании document объекта в качестве цели делегирования.

+0

Я пришел сюда, благодаря шакти-пателу для скрипки. http://jsfiddle.net/AMLm6/1/ после переключения на удаление .menu-open класса, когда я нажимаю элемент только с классом .signin, он предупреждает! Я хочу предупредить об этом только тогда, когда класс существует. –

+1

@MuhammedAslamC Это не то, что я предложил, http://jsfiddle.net/MWct2/ – undefined

+0

Спасибо. но я не уверен, почему это не работает для меня. –

Смежные вопросы