我想了解jquery。我们可以根据变量/情况/另一个事件绑定事件吗?
例如,如果var X为0,则可以单击div,同时如果var X为1,则无法单击相同的div。
我做了这个jsfiddle http://jsfiddle.net/hKkVD/4/ 当然它不起作用,但你明白了。
编辑:对不起,我有些困惑。我需要在触发click事件之前检查变量。所以基本上变量是检查(和切换)是否允许事件。感谢
答案 0 :(得分:2)
你的JavaScript并不遥远,但对我来说(无论如何在Chrome中),alert关键字似乎已经引起了问题。在这里查看我的更新代码http://jsfiddle.net/cchana/6UeeG/
var alertMe = 0;
$("#toggle").click(function(){
if (alertMe == 0){
$("#toggle").text('turn alert off');
alertMe = 1;
}
else {
$("#toggle").text('turn alert on');
alertMe = 0;
}
});
$("#clickme").click(function() {
if(alertMe == 1) {
alert("hey i could be clicked");
}
});
在函数内部进行检查是有意义的,而不是定义两个单独的函数调用,因为只有满足的第一个条件才会绑定到元素。
答案 1 :(得分:0)
我不确定你是否在找这样的东西,但你可以查看这个url.I更新了你的演示。
答案 2 :(得分:0)
如果你的旗帜使用了任何其他名称,你的代码就可以了。问题是ny定义了一个标志'alert',你正在覆盖初始警报功能。因此,您所要做的就是更改标志的名称或专门调用全局函数,如下所示:'window.alert()'。这是一个改变了旗帜名称的小提琴:http://jsfiddle.net/hKkVD/2/
答案 3 :(得分:0)
首先,不要将alert
用作变量名。这将拒绝访问原生alert()
方法。
另外,在编写代码处理器之前,代码会测试alert
的值。我希望你想要的是在点击处理程序中测试alert
的值。
var b_alert = false;//boolean_alert
$("#toggle").click(function() {
b_alert = !b_alert;
$(this).text(b_alert ? 'turn alert off' : 'turn alert on');
});
$("#clickme").click(function() {
if (b_alert) {
alert('Hey I could be clicked!');
}
else {
//do nothing
}
});
请参阅fiddle