[英]JavaScript/jQuery - Reusing the event 'Click' of an element
我有一个元素,例如div。 并附加一个事件“单击”到它。 在jQuery中,它将是:
$('#myDiv').click(function(){
$(".class1").show();
})
现在,我想分配一个新函数“ myDiv#”,以替换旧函数。 我正在这样做:
$('#myDiv').click(function(){
$(".class23").hide();
})
但是,当我在div上运行“单击”时,将执行我分配此疑问开头的函数。
问题:如何删除将归因于元素的click事件运行的功能? (不使用新的click事件重新创建元素...)
您需要.unbind
。
您可以删除所有以前的绑定函数:
$('#myDiv').unbind('click');
或者,如果您只想解除一个特定功能的绑定:
var show = function() {
$(".class1").show();
};
$('#myDiv').click(show);
接着:
$('#myDiv').unbind('click', show); // unbind first function
$('#myDiv').click(function() { // bind second function
$(".class23").hide();
});
请注意, .click(func)
只是.bind('click', func)
的快捷方式。
如果您只想处理元素的一次单击,则可以使用one() ,单击一次后自动解除绑定:
$("#myDiv").one("click", function() {
$(".class1").show();
$("#myDiv").one("click", function(){
$(".class23").hide();
});
});
使用JQuery解除绑定功能删除所有单击事件
$('#myDiv').unbind('click');
在首次点击事件上添加一个计数器。
var counter = 0;
$('#myDiv').click(function(){
if(counter>1){
$(".class23").hide();
}
else
$(".class1").show();
counter++;
})
只是一个例子
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.