最初加载页面时,我有以下click
事件设置(工作正常):
$('#thisIsTheElement').click(function() {
firstFunction();
});
稍后(发生某些事情后)我想更改此单击以指向另一个名为
secondFunction();
最有效的方法是什么?
我应该解除绑定并再次绑定吗?这可以在一行中完成吗?
最初加载页面时,我有以下click
事件设置(工作正常):
$('#thisIsTheElement').click(function() {
firstFunction();
});
稍后(发生某些事情后)我想更改此单击以指向另一个名为
secondFunction();
最有效的方法是什么?
我应该解除绑定并再次绑定吗?这可以在一行中完成吗?
一种可能的解决方案是使用标志来跟踪是否something
已发生
var somethingOccurred = false;
$('#thisIsTheElement').click(function() {
if(somethingOccurred){
secondFunction();
} else {
firstFunction();
}
});
//when something occurs
somethingOccurred = true
另一种选择可能是这样的:
$('#thisIsTheElement').on('click', firstFunction);
然后:
$('#thisIsTheElement').off('click', firstFunction).on('click', secondFunction);
.one()文档。
此代码将在两个功能之间切换。
function firstFunction() {
alert('First handler: ' + $(this).text());
$(this).one("click", secondFunction);
}
function secondFunction() {
alert('Second handler: ' + $(this).text());
$(this).one("click", firstFunction);
}
$("div").one("click", firstFunction);
此代码将运行firstFunction
一次,下一次secondFunction
function firstFunction() {
alert('First handler: ' + $(this).text());
$(this).on("click", secondFunction);
}
function secondFunction() {
alert('Second handler: ' + $(this).text());
}
$("div").one("click", firstFunction);