是否可以围绕javascript`.单击`function`来包装if语句?
每当我包装javascript时都会遇到麻烦是否可以围绕javascript`.单击`function`来包装if语句?,javascript,jquery,html,Javascript,Jquery,Html,每当我包装javascript时都会遇到麻烦 $(document).ready(function(){ var test = "something"; if (test == "something"){ $("#" + test).click(function(){ do_something(); }); } }); 与不环绕if语句相比,.click不进行绑定。这是预期的行为吗 编辑:元素+测试可能不存在,这就
$(document).ready(function(){
var test = "something";
if (test == "something"){
$("#" + test).click(function(){
do_something();
});
}
});
与不环绕if语句相比,.click不进行绑定。这是预期的行为吗
编辑:元素+测试可能不存在,这就是为什么我有外部条件您需要在单击函数中处理该条件
$(test).click(function(){
if (test == "something"){
do_something();
}
});
更新:到底是什么问题?什么行为?测试在某个地方定义了吗?好的,在编辑之后…如果代码没有进入if,那么它将不会被绑定。当if不为真时,您是否希望快捷键被绑定?当变量test被更改时,一旦执行完毕,它就不会重新运行if语句。因此,当且仅当页面最初加载时test==某个值时,是否要绑定事件?你确定你不是有意将if语句放入事件中吗?另外,考试应该是什么?你正在做$test,所以我很好奇。如果你做了$test并且元素不存在,那么你将返回一个空的jQuery对象。您可以调用。单击它,但它什么也做不到。我不想这样做的原因是,测试可能不存在,如果存在,绑定将导致错误。我已在演示的答案中添加了一个提琴。@user445670您可能不想这样做,但您必须这样做。这是唯一可行的方法。如果条件不在单击中,则在单击发生时不会对其进行测试,而是在文档加载时只测试一次。那不可能是你想要的。