Javascript似乎在说true ==false
Javascript appears to be saying true == false
我有以下js函数。
function showAttentionItem(sender)
{
debugger;
var assistanceRequired = sender.parent().hasClass("assistanceRequired");
if (assistanceRequired)
{
sender.children('.assistanceRequiredText').fadeToggle(0);
if (sender.children('.assistanceRequiredText').is(":visible"))
{
sender.children('.studentPerformanceText').hide();
}
}
if (!assistanceRequired)
{
if (sender.parent().hasClass("studentOutsideTargetRange"))
{
sender.children('.studentPerformanceText').fadeToggle(0);
}
}
}
当我运行它时发生的情况是,我点击调试器行,然后单步执行代码。 assistanceRequired
true
.
执行sender.children('.studentPerformanceText').hide();
后,它跳转到的下一行是sender.children('.studentPerformanceText').fadeToggle(0);
,在if (!assistanceRequired)
语句内!
这怎么可能发生?
这保证有效:
if (sender.parent().hasClass("assistanceRequired"))
{
// do whatever here
}
else
{
// do whatever ELSE here
}
当编码正确时,只有一个或另一个可以运行,因为只有一个测试,并且它将在一次测试时true
或false
。它不可能被一些你不知道的副作用改变,这很可能是正在发生的事情。这是没有争议的。
如果这不能按照您想要的方式工作,那么您没有显示其他错误,并且没有可执行的 jsFiddle 祝你好运,让任何人相信像 if ... else
结构这样的基本东西被破坏了。
我只能想到一种场景来解释你所看到的。
showAttentionItem()
存在双重触发,在调试器中,这被视为单个调用。在第一个呼叫中,援助要求为真,在第二个呼叫中为假。
相关文章:
- JavaScript-切换“;全部检查”;复选框true/false
- true==false以某种方式计算为true
- Javascript似乎在说true ==false
- JavaScript onkeydown, return true,false
- 从异步函数返回true/false以用于同步if()
- 函数返回undefined而不是true/false
- 为什么true/true是1,true/false是无穷大,false/true是0,false/false是NaN
- 检查对象数组是否包含布尔值true/false
- 函数:根据字符串中是否存在子字符串返回 True/False
- 如何将 ng-show 与控制器中返回 true/false 的函数一起使用
- 在input.checked=true/false _without_ jQuery上触发一个事件
- jQuery javascript未正确返回true/false
- 如何从嵌套的jquery回调函数中返回true/false
- 如何在骨干模型属性中设置布尔值true/false
- 如何使用angular或javascript在基于true/false返回的html中显示值
- 基于true/false变量显示/隐藏进度条
- Node.js在返回true/false时停止函数
- 是否可以将true/false值传递给ajax函数
- 根据Webix中的复选框值编辑true/false
- Meteor:设置车把变量true/false