点击事件上的jQuery无法处理切换类

时间:2013-09-24 05:23:17

标签: jquery

我在jQuery中尝试过“on”,“live”和“delegate”方法,但似乎没什么用。

我想要做的是当用户点击一个.signin类的登录按钮时,切换一个名为.menu-open的类。然后,当我再次点击该按钮时,我想提醒一些事情!

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

2 个答案:

答案 0 :(得分:3)

那是因为在页面加载时,文档中没有.menu-open类的元素,因此查询无提示失败,您应该委派该事件。

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

请注意,使用静态父元素比使用document对象作为委派目标更有效。

答案 1 :(得分:1)

请你删除这一行

e.preventDefault();

preventDefault:

如果调用此方法,则不会触发事件的默认操作。

使用此代码:

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

在这里工作正常

Demo