Jquery“可重用”功能

时间:2010-07-20 15:02:44

标签: jquery function

我认为愚蠢的问题,但有没有办法将“if”语句用作可重用的函数

    success: function(msg){
     if(msg=='o'){
        $j('#ok').show();
        $j(button).show();
        $j('#chk').hide();
        }
    else{
        $j('#ok').hide();
        $j('#chk').show();
        $j(button).hide();
        }

    }

当我想打电话时,我有很多次,我宁愿选择“较小”的重量。

4 个答案:

答案 0 :(得分:1)

success: function(msg){
     doStuff(msg);

    }

function doStuff()
{
   if(msg=='o'){
        $j('#ok').show();
        $j(button).show();
        $j('#chk').hide();
    }
    else{
        $j('#ok').hide();
        $j('#chk').show();
        $j(button).hide();
    }
}

答案 1 :(得分:1)

不确定。一点也不傻。

success: function(msg){
    checkMsg( msg );
}

...

function checkMsg( msg ) {
    if(msg=='o'){
        $j('#ok').show();
        $j(button).show();
        $j('#chk').hide();
    } else {
        $j('#ok').hide();
        $j('#chk').show();
        $j(button).hide();
    }
}

我认为button是在success:回调范围之外创建的变量。

答案 2 :(得分:1)

这种技术使用'闭包'来生成一个函数,以提供成功方法:

function doStuffGenerator( button ){ 
  return function( msg ){ 
    if(msg=='o'){
        $j('#ok').show();
        $j(button).show();
        $j('#chk').hide();
    }
    else{
        $j('#ok').hide();
        $j('#chk').show();
        $j(button).hide();
    }
  };
}

...
jQuery.ajax({ 
   ...
   success: doStuffGenerator( button )
   ...
});

答案 3 :(得分:0)

在jQuery中编写函数的另一种方法是:

var myFxn = function(param){
  // do function stuff here
}

var myOtherFxn = function(param){
  // do function stuff here
}

所以在你的代码中:

if(msg=='o'){
  myFxn();
} else {
  myOtherFxn();
}