取消调用另一个函数的函数

时间:2018-11-12 10:17:54

标签: jquery

仅当某些图像具有类imgact时,我才想执行许多功能。

some function(){    
    if (!$('.imglib').hasClass('imgact')) {return;}

为避免重复上述行,我创建了一个函数:

function ifno(){
    if (!$('.imglib').hasClass('imgact')) {return;}
}

然后:

some function(){
    ifno();
...

不起作用。 some function被执行。

该怎么做?

3 个答案:

答案 0 :(得分:1)

您可以改为返回函数的结果,然后在代码中对其求值。这将允许您检查是非题,否则继续进行。

所以您的检查类函数应如下所示。

Continue

然后在您的示例中,您的代码将检查该类并运行该函数:

 function ifno(){
        return $('.imglib').hasClass('imgact');
    }

答案 1 :(得分:1)

您缺少ifno函数的return语句,可以执行以下操作。

$(".imglib").click(function(){
  if(ifno(this)){
  alert('have class');
  }
  else{
    alert('do not have class');
  }
})

function ifno(element){
  return $(element).hasClass('imgact');
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button class="imglib">test</button>
<button class="imglib imgact">test1</button>

答案 2 :(得分:0)

我建议您从函数中返回某些内容,例如下面的函数将返回false

function ifno(){
    if (!$('.imglib').hasClass('imgact')) {return false;}else{return true;}
}

OR

function ifno(){
       retun $('.imglib').hasClass('imgact');
}

然后

some function(){
    if(ifno()){
     console.log('Has Class');
    }else{
     console.log('Not Has Class');
    }
...

我丢失了if-statement后发现了@RoryMcCrossan,谢谢您,我已经编辑了答案