如何取消对活动元素上的click事件的绑定,并在单击另一个元素时重新绑定
How to unbind click event on the active element and bind again when another element is clicked?
我想用一个例子来解释更容易:
HTML:<div class="boxset">
<div class="box_header">
h1
</div>
<div class="box">
This is some text for box 1.
</div>
</div>
<div class="boxset">
<div class="box_header">
h2
</div>
<div class="box">
This is some text for box 2.
</div>
</div>
<div class="boxset">
<div class="box_header">
h3
</div>
<div class="box">
This is some text for box 3.
</div>
</div>
JS:
$('.box_header').bind("click", function() {
$('.box').not($(this).next('.box')).animate({
'width': 'hide'
});
$(this).next().animate({
'width': 'show'
});
});
jsFiddle:
http://jsfiddle.net/rDHMF/这是一个简单的横向手风琴菜单。现在,当我单击标题(h1, h2, h3)时,将显示其相应的内容,并且先前打开的内容将关闭。但是,我可以再次点击刚才点击的标题它会收缩并展开。
是否有可能暂时解除我刚刚单击的标题上的单击事件的绑定,以便"活动"标题将在我单击它时保持不变?然后当我点击另一个标题时再次绑定。如果是,怎么做?
应该这样做:
$('.box_header').bind("click", function() {
$('.box').not($(this).next('.box')).animate({
'width': 'hide'
});
$(this).next().animate({
'width': 'show'
});
});
你不需要取消/重新绑定事件,只要防止盒子收缩,当它是相同的
我会用另一种方式来做。每当用户单击头文件时,向头文件添加一个active
类(并从其他头文件中删除它)。并做一些其他的事情,如果这个头已经有一个active
类(只从这个头和动画中删除一个头)。这种方式还允许我们自定义活动页眉的样式。
相关文章:
- 将动态元素绑定到函数;只剩下一个绑定
- Knockout绑定是膨胀的html(表单元格),如何使用javascript创建绑定或从父元素绑定
- 使用Kendo的动态HTML元素绑定
- 将多个元素绑定到同一onclick
- 如何在AJAX驱动的应用程序中优化元素绑定
- 使用AngularJS UI路由器时出现元素绑定问题
- 如何将 DOM 元素绑定到自定义 $.touchpress 事件
- 如何在React Native中为ListView中的每个元素绑定函数
- 对克隆的image元素绑定onclick事件
- 将DIV元素绑定到溢出滚动条
- 使用ng repeat将表单元素绑定到角度中的新对象
- 将元素绑定到不同帧中的现有 AngularJS 作用域
- KNOCKOUTJS 将多个输入元素绑定到一个可观察量
- 如何将两个 html 元素绑定在一起,当第一个元素被删除时,第二个元素也从 DOM 中删除
- OOJS-将每个元素绑定到一个特定的点击
- 真正阻止元素绑定-取消绑定元素-AngularJS
- 如何在jQuery中将多个元素绑定到多个事件
- Vue.js-将同名的无线电元素绑定到数组
- 将两个数组元素绑定为一个
- Flotr2 -安全地销毁图形元素以及为该元素绑定的所有事件