JQuery "многоразовая" функция - PullRequest
2 голосов
/ 20 июля 2010

Глупый вопрос, я думаю, но есть ли способ использовать оператор "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 ]

1 голос
/ 20 июля 2010

Конечно. Совсем не глупо.

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:.

1 голос
/ 20 июля 2010

В этом методе используются «замыкания» для генерации функции, которую необходимо предоставить в качестве метода успеха:

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 )
   ...
});
1 голос
/ 20 июля 2010
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();
    }
}
0 голосов
/ 20 июля 2010

Другой способ написания функций в jQuery заключается в следующем:

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

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

так в вашем коде:

if(msg=='o'){
  myFxn();
} else {
  myOtherFxn();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...