如果条件为false,则阻止默认设置
If conditions false then prevent default
我有一个链接。当有人点击它时,我想在让它工作之前检查一些条件。如果是false
,则应阻止默认操作。
$(".pager-next a.active").click(function(event) {
if (!a == 1) {
event.preventDefault();
}
});
只有当a
等于1
时,链接才应该工作。上述代码是否正确。如果满足特定条件,则将CCD_ 4设置为CCD_。只有在满足条件的情况下,链接才能工作。
假设'仅在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
的计算结果为true或false。如果a
到布尔的转换是true
,则!a
评估为false。
所有正整数的求值结果为true
。因此!a
将评估为false。使用double等于==
与1的比较将测试布尔!a
与布尔1
或true
。因此,如果a
是一个正整数,正如我所怀疑的那样,那么您的if
语句将始终计算为false。
如果你想测试某个东西不是其他东西,你需要将比较运算符(===
)中的第一个等号更改为!
。
例如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
}
希望能帮助
附言:记住你的比较运算符:
!"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();
}
相关文章:
- 杰辛特 |传递默认设置 |函数声明和“this”
- jQuery插件在默认设置中覆盖url
- 如何覆盖羽灯中的默认设置
- 获取从默认设置更改的所有复选框的 id
- 如何访问图表.js默认设置?(相关 - 如何打开工具提示?
- 如何设置默认设置
- 当运行javascript代码时,网页样式会一直恢复到默认设置
- 离子输入日期默认设置为今天
- $.ajax与$.ajaxSetup默认设置相结合
- 在更新时阻止默认设置
- Angular UI TinyMCE:如何设置默认设置
- 如果条件为false,则阻止默认设置
- 将moments.js默认设置为特定的日期时间
- 将sap.ui.commons.DatePicker默认设置为当前日期
- 当尝试使用touchOverflowEnabled覆盖jQuery Mobile默认设置时,页面加载了两次
- 清除所有数据并返回默认设置
- 如何使用AngularJS将页面设置还原为默认设置
- 隐藏此消息:ES5选项现在默认设置
- 为每个jQuery插件实例设置默认设置的正确方法
- 无法在引导中更改输入框的大小,默认设置为input-sm