假设我有这部分javascript代码:
$('a').on('mouseenter', function() {console.log('you just hovered a link')});
有时,我想禁用所有事件,因为页面是例如加载。我可以通过以下方式实现这一目标:
$(*).off();
但是,如何在页面加载完成后重新启用所有事件?
答案 0 :(得分:3)
您可以在文档准备就绪时绑定事件:
$(function(){
$('a').on('mouseenter', function() {console.log('you just hovered a link')});
});
当涉及到其他条件时,例如动画正在运行时。你可以将一些变量(比如isanimationruning)设置为true并检查变量状态以确定是否需要使用悬停:
$('a').on('mouseenter', function() {
if(!isanimationruning)
console.log('you just hovered a link')
});
答案 1 :(得分:1)
如果可以,请尝试使用分离功能。 查看函数detach()
的示例答案 2 :(得分:0)
http://jsfiddle.net/washington_guedes/rtonjcym/14/
$("button").on("click", function(){
if( $(this).val() === "0")
$(this).html("Click here to disable").val("1");
else
$(this).html("Click here to enable").val("0");
});
$("#action").on("click", function(){
if( $("button").val() === "0") return;
// function implementation
$(this).css({"background-color": "#"
+ Math.floor(Math.random() * 10)
+ Math.floor(Math.random() * 10)
+ Math.floor(Math.random() * 10)});
});
我存储在按钮的值中:零或一个......并在函数中使用此代码:
.. function .. (){
if( $("button").val() === "0") return;
...
} ..