Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.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 在false条件中触发单击事件的jquery_Javascript_Jquery_Function - Fatal编程技术网

Javascript 在false条件中触发单击事件的jquery

Javascript 在false条件中触发单击事件的jquery,javascript,jquery,function,Javascript,Jquery,Function,有人能给我解释一下为什么点击事件是在这个条件下触发的,而这个条件的评估结果是错误的吗 function getHeight() { if( checkWindowWidth() ) { // Returns false console.log("works"); // Not logged since condition is false $( ".class" ).on( "click", function() {

有人能给我解释一下为什么点击事件是在这个条件下触发的,而这个条件的评估结果是错误的吗

function getHeight() {      

    if( checkWindowWidth() ) {  // Returns false    
        console.log("works"); // Not logged since condition is false

        $( ".class" ).on( "click", function() {    
            // Do some things. 
            console.log("why working?"); // Is logged, but why?  

        } else {    
            // Do other stuff    
        }

    }

}

getHeight();

$(window).resize(function() {
    getHeight();
});
我该如何写这篇文章,这样它就不会在错误的条件下开火

更新: 看起来像是将
.on
移动到
getHeight()
之外,然后在
中添加条件。on
可以满足我的需要

$( ".class" ).on( "click", function() {    
            // Do some things. 
            console.log("why working?"); // Is logged, but why?  

}

此代码表示您正在注册
click
事件,之后每当单击发生时,它都会记录,只需运行一次即可。所以基本上你做得不对。

确保在checkWindowWidth()=false之前没有调用checkWindowWidth()=true


绑定事件处理程序函数时,事件的绑定不依赖于getheight if语句中的作用域。一旦绑定,无论何时触发事件,都将调用此函数,它不再依赖于getheight函数。

我猜它在某个时候返回true,当事件绑定时,它被绑定。您可能想将条件放入事件句柄中。请显示checkWindowWidth()函数。请发布有效代码。这根本不会运行。命名函数中的单击事件通常很奇怪。我认为您将普通javascript语法与jquery混淆了syntax@adeneo是的,这可能是真的,但是,我在resize上再次调用getHeight函数。所以在一个窗口大小上是正确的,但在调整大小上是错误的。我不确定我是否遵循了。当它处于一种甚至不真实的状态时,它为什么要做任何事情呢?on click不应该什么都不做吗?
.on
注册回调函数,以便在每次单击时调用。因此,在您的代码中,即使条件为true,它也会运行此代码,然后它不再需要任何条件来运行