Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.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 在这种情况下,正确的方法是什么?_Javascript_Jquery_If Statement - Fatal编程技术网

Javascript 在这种情况下,正确的方法是什么?

Javascript 在这种情况下,正确的方法是什么?,javascript,jquery,if-statement,Javascript,Jquery,If Statement,关于这个新手javascript(使用jQuery)问题,我没有找到一个让我满意的答案 我有这两个代码在一个文件中准备好了 代码1 $('myElement').click(function(){ if(isMobile()){ //do something... } }); 代码2 if(isMobile()){ $('myElement').click(function(){ // do somthing... }); }

关于这个新手javascript(使用jQuery)问题,我没有找到一个让我满意的答案

我有这两个代码在一个文件中准备好了

代码1

$('myElement').click(function(){
     if(isMobile()){
         //do something...
     }
});
代码2

if(isMobile()){
    $('myElement').click(function(){
       // do somthing...
    });
}
正确的方法是什么?为什么


谢谢大家

在任何情况下,第一个都会创建click事件,在它里面,你会根据情况做不同的事情

第二个选项仅在条件为true时生成单击事件

因此,这取决于应用程序的逻辑。如果单击事件仅在
isMobile()
为true时才需要,那么我将使用第二个选项,这样您就不会生成不需要的事件

如果您总是需要click事件,但它必须根据
isMobile()
条件执行不同的操作,那么第一个就是要做的事情

我希望它有帮助

代码1 动作始终附加到元素。 每次点击你的元素,它都会测试你是否在手机上

代码2 它将首先测试您是否使用手机。如果是这样,它会将您的操作附加到元素。否则,当您单击元素时,将永远不会得到该操作

这里有一个例子:

const isMobile=false
if(isMobile){
console.log(“代码1-isMobile”)
$(“#代码1”)。单击(函数(){
console.log(“代码1-单击”)
})
}
$(“#代码1”)。单击(函数(){
console.log(“代码2-单击”)
if(isMobile){
console.log(“代码2-isMobile”)
}
})

代码1
点击我!
代码2

点击我正确的方法是什么?你的例子做了不同的事情。请说清楚一点。代码1将在每次单击myElement时检查您的条件,其中代码2将只检查一次您的条件,然后绑定一个click处理程序(如果为true)。这取决于其他情况。如果你只需要它的移动设备与第二个一起使用,那么我会最常用第一个,因为它提供了更多的自由度和可伸缩性。
$('myElement').click(function() {
  if(isMobile()) {
    // do something...
  }
});
if(isMobile()) {
  $('myElement').click(function() {
    // do something...
  });
}