当函数返回不同的东西时,jQuery会做某事

时间:2013-07-07 19:43:51

标签: jquery

当函数返回不同的结果时,是否可以执行操作?

我不想在这个函数中添加不必要的代码:

function numCols() {
    var winWidth = $(window).width();
    if(winWidth >= 1900){
        return 4;
    } else if(winWidth >= 1025 && winWidth <= 1899){
        return 3;
    } else if(winWidth >= 600 && winWidth <= 1024){
        return 2;
    } else if(winWidth <= 599){
        return 1;
    }
}

但是,当numCols()返回不同的数字时,我希望能够执行其他功能。我会将numCols()放入窗口调整大小:

$(window).resize(function(){
    numCols()
});

然后我想在numCols()返回不同的数字时执行其他功能。只有当它返回一个数字而不是整个时间才会调整窗口大小。

3 个答案:

答案 0 :(得分:1)

我建议您执行以下操作:

在文档中加载保存在全局变量中的初始列数:

$(function(){
    window.columnNum = numCols();
});

然后在调整大小处理程序中执行:

$(window).resize(function(){
    var currentCols = numCols(); // get the current amount of cols
    if(currentCols != window.columnNum){ // execute the following code only if the number of columns have changed
        window.columnNum = currentCols;
        doSomethingElseHere(); // add any code here
    }
});

答案 1 :(得分:0)

我认为你要做的是这样的事情:

$(window).resize(function(){
    var cols = numCols();
    if (cols == 1) {
        // call my custom function
        myCustomFunction();
    } else if (cols == 2) {
        // call another function
        anotherFunction();
    } else {
        aThirdFunction();
    }
});

答案 2 :(得分:0)

在这种情况下,您的函数返回值,是的,您可以使用该值进行操作,并且可以进行相同的其他操作。

$(window).resize(function(){
   if(parseInt(numCols()))
   {
     alert('first action');
   }
});

<强> Demo on jsFiddle