Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以围绕javascript`.单击`function`来包装if语句?_Javascript_Jquery_Html - Fatal编程技术网

是否可以围绕javascript`.单击`function`来包装if语句?

是否可以围绕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不进行绑定。这是预期的行为吗 编辑:元素+测试可能不存在,这就

每当我包装javascript时都会遇到麻烦

$(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您可能不想这样做,但您必须这样做。这是唯一可行的方法。如果条件不在单击中,则在单击发生时不会对其进行测试,而是在文档加载时只测试一次。那不可能是你想要的。