1

我在 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");
 });
});
4

2 回答 2

3

那是因为在页面加载时.menu-open文档中没有具有 class of 的元素,因此查询静默失败,您应该委托该事件。

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

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

于 2013-09-24T05:25:55.000 回答
1

你能把这行删掉吗

e.preventDefault();

防止默认值:

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

使用此代码:

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

工作正常检查这里

演示

于 2013-09-24T05:25:36.507 回答