3

我在颜色框弹出窗口内的按钮上遇到 jQuery click 事件问题。

按钮如下:

<div id="popup">
    <button class="close_bu">Close</button>
</div>

默认情况下附加以下事件:

jQuery('.close_bu').bind('click',function(){        
            jQuery.colorbox.close();
});

当我触发另一个事件时,我想更改默认行为,所以我执行以下操作:

jQuery('#anotherpopup').on('click','.deleteplan_button',function(){

            jQuery('#popup .close_bu').addClass('returnBack');
            jQuery('#popup .returnBack').removeClass('close_bu');

            jQuery.colorbox({inline:true , href:"#popup", opacity: 0.6, width: "600px"});
return false;
         })

我已添加:

jQuery('#popup').on('click','.returnBack',function(){
                e.preventDefault();
                //Do something
})

但是附加到 .returnBack 的新事件不起作用,当我单击按钮触发关闭事件时,按钮不再具有 .close_bu 类并不重要,它会继续触发该事件。

我有点困惑:S

4

1 回答 1

2

在您的代码中,没有带有 id 的元素popup。所以jQuery('#popup')什么也不做(或者你没有向我们展示代码的重要部分)。

更新:

您将需要使用.unbind()而不是删除类

$('#popup .close_bu').unbind('click');

'#popup .close_bu'您只需选择要与事件关联的元素,或者在这种情况下从事件中取消关联。jQuery css 选择器看起来就像 css。事件和处理程序之间的连接不使用 css。添加和删​​除类的全部技巧是触发不同的css样式,它只会改变元素的外观,但不会改变事件。

于 2012-05-16T13:32:14.107 回答