我有一个链接。当有人点击它时,我想在让它工作之前检查一些条件。如果它是false
默认操作,则应阻止。
$(".pager-next a.active").click(function(event) {
if (!a == 1) {
event.preventDefault();
}
});
该链接仅在a
等于时才有效1
。上面的代码是否正确。如果满足特定条件a
,则设置为。1
该链接仅在满足条件时才有效。
我有一个链接。当有人点击它时,我想在让它工作之前检查一些条件。如果它是false
默认操作,则应阻止。
$(".pager-next a.active").click(function(event) {
if (!a == 1) {
event.preventDefault();
}
});
该链接仅在a
等于时才有效1
。上面的代码是否正确。如果满足特定条件a
,则设置为。1
该链接仅在满足条件时才有效。
假设 '应该只在 a 等于 1 时才有效,你的意思是元素的文本a
等于 1,试试这个:
$(".pager-next a.active").click(function(event) {
if ($(this).text() != "1") {
event.preventDefault();
}
});
您可以修改text()
以使用 jQuery 中可用的元素的任何属性。
更新
我的 a 是一个 var,它在满足条件之前保持值 0。
在这种情况下,问题只是您的相等运算符不正确:
$(".pager-next a.active").click(function(event) {
if (a != 1) {
event.preventDefault();
}
});
当心:
!a
评估为真或假。如果转换为a
布尔值,true
则!a
计算结果为假。
所有正整数的计算结果为true
。所以!a
将评估为假。使用 double 等于 1 的比较将使用布尔值or==
测试该布尔值。因此,如果我怀疑它是一个正整数,那么您的陈述将始终评估为假。!a
1
true
a
if
如果您想测试 is something is NOT something else,您需要将比较运算符 ( ===
) 中的第一个等号更改为!
.
例如var a = 2; if(a!==1) { // do something }
<-- A 为 2,因此 if 比较将评估为真,因为a
不等于1
。
在您的代码中,我们有:
var a = 2;
if(!a==1){
// a was 2 (or boolean true by default)
// but using ! has negated its boolean value
// so !a evaluates to boolean false
// which is being compared to 1 (evaluating to boolean true)
// so this if statement will never get here
}
希望有帮助
PS记住你的比较运算符:
!"hello world" == 0 // true
!"hello world" === 0 // false
我看到你对另一篇文章的评论说,直到事情发生,然后它a
就是。0
1
在这种情况下:
var a = 0; // integer 0 or bool false
if(!a==1){ // if the bool opposite of 0 (false) is equal to 1 (true)
// well, opposite of false is true, so you're checking if true is equal to true
// so this will get called
e.preventDefault();
}