2012-03-29 11 views
3

Ich habe zwei jquery's, die ich laufe, und ich möchte sie beide in der gleichen Linie kombinieren. Hier ist ein Beispiel von dem, was ich versuche zu tun.zwei jquery Funktionen zur gleichen Zeit

​$(function(){ 
    $('input').each(function(){ 
     if ($(this).is(':checked')) { 
      $(this).after('this is checked'); 
     } 
    }); 
    $('input').click(function(){ 
     if ($(this).is(':checked')) { 
      $(this).after('this is checked'); 
     } 
    }); 
});​ 

nun beide Funktionen das gleiche tun, eine für die Überprüfung durchgeführt wird, wenn es irgendwelche Eingaben aus dem Backend geprüft wird, der andere antwortet nur auf Benutzer klickt.

ich denke, ob ich sie in einer Aussage wie diese kombinieren,

$('input').bind('each click'); 

aber ich bemerkte, dass auch diese nicht mit jedem funktionieren würde. Irgendwelche Ideen?

Dank!

Antwort

1

nennen Sie einfach die Funktion ..

function handler() { 
    if ($(this).is(':checked')) { 
     $(this).after('this is checked'); 
    } 
} 

dann in beiden Situationen verwenden:

$(function(){ 
    $('input').each(handler); 
    $('input').click(handler); 
});​ 
+0

das funktioniert super! Vielen Dank !! –

1

Sie können die Methode each nicht binden, da dies kein Ereignis ist.

Weisen Sie die Funktion einer Variablen, so dass Sie es wieder verwenden können:

​$(function(){ 

    var markChecked = function() { 
    if ($(this).is(':checked')) { 
     $(this).after('this is checked'); 
    } 
    }; 

    $('input').each(markChecked).click(markChecked); 
});​ 

Ein weiterer Ansatz, der manchmal verwendet wird, ist ein Click-Ereignis für jedes Element lösen die erste Kontrolle zu erzwingen:

​$(function(){ 
    $('input').click(function() { 
    if ($(this).is(':checked')) { 
     $(this).after('this is checked'); 
    } 
    }).click(); 
});​ 

Dies setzt natürlich voraus, dass das Auslösen des Klickereignisses keine Nebenwirkungen hat. Wenn Sie bereits einen anderen Click-Event-Handler an eines der Elemente gebunden haben, würde dies dazu führen, dass dieser Event-Handler ebenfalls aufgerufen wird.

+0

das funktioniert auch super! Vielen Dank !!! –