0

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

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

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() 返回不同的数字时执行其他功能。只有当它返回一个数字而不是整个窗口正在调整大小时。

4

3 回答 3

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
    }
});
于 2013-07-07T20:05:14.920 回答
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();
    }
});
于 2013-07-07T20:04:34.060 回答
0

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

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

jsFiddle 上的演示

于 2013-07-07T20:05:57.687 回答