我正在编写一些涉及从多个函数跳转的jQuery代码。在一个函数中,'if'语句用于选择代码接下来的位置。 if语句的条件是从前一个函数传递的变量的值。因此,为了澄清,函数将一个变量传递给另一个函数,然后该函数转到另一个函数,该函数是根据它源自的函数选择的。
这是我在JSFiddle中的代码:http://jsfiddle.net/VFVk7/
正如您所看到的,当您单击任何按钮时,它将转到If语句中的所有可选功能,而不仅仅是一个。有谁知道为什么会这样?非常感谢!
答案 0 :(得分:10)
通过编写if(origin = 'go1')
,您将 'go1'
分配给origin
变量,并传递该分配的结果(即字符串{{1} {}}语句。{}
由于所有非空字符串在Javascript中都是“真实的”,因此这相当于'go1'
,并且所有if
语句都会执行。
您需要通过撰写if (true)
将 if
与'go1'
变量进行比较。
origin
运算符为变量赋值if (origin === 'go1')
运算符执行松散比较(例如=
,==
,true == '1'
,8 == '8'
)。16 == '0x10'
运算符执行严格比较。 (上述示例均不适用于false == []
)答案 1 :(得分:6)
你有像
这样的代码if(origin = 'go1')
将 'go1'
分配给变量origin
(并检查它是否为“true” - 它是什么)。
请尝试改为:
if(origin == 'go1')
到比较而不是分配。
答案 2 :(得分:-2)
常见问题。在Java中它会产生编译错误,在Javascript中它可以正常工作,可能不是你想要的方式。 =
登录Javascript不执行相等操作。