2010-10-19 6 views

Répondre

6
$([$a.get(0), $b.get(0)]).click(function(e) { ... }); 
+0

Ne serait-il préférable d'utiliser seulement $ ('# a, #B') cliquez sur() avec $ a, $ b alors? – Vincent

+1

Absolument, beaucoup mieux, mais je pensais que vous ne voulez pas faire cela et demander comment le faire en supposant que vous avez déjà les variables $ a et $ b. –

+0

Gardez à l'esprit que cela ne fonctionne que sur le premier élément de $ a et $ b. Si vous changez $ a ou $ b à un sélecteur qui retourne plus d'un élément, seul le premier sera lié. Mais je suis d'accord avec Darin $ ('# a, #b') est une meilleure solution si vous ne les utilisez qu'une seule fois. – fredrik

-1

de Depends ce que vous voulez faire ensuite avec vos vars.

Vous pouvez simplement les définir comme un:

var $a = $('#a, #b'); 
$a.click() 

Ou les utiliser séparément:

/* This way the click event is applied even if each selector returns 
    more then one element. And $a and $b is preserved */ 
$([].concat($a.toArray()).concat($b.toArray())).click(function() { 
    console.log(this) 
}); 

EDIT

de code mis à jour.

..fredrik

+1

Non, ils ne sont pas équivalents. La seconde fera de '$ b' le contexte. –

+0

En fait le '$ a'. – fredrik

+0

Non, le deuxième paramètre ($ b) est le contexte. –

3
$a.add($b).click(function(e){...}); 

add retourne un nouveau jeu de nœuds tenant le syndicat. $ b peut être "à peu près tout ce que $() accepte".

0

Il semble que vous ca faites juste ceci:.

$(deleteBtn).add(copyBtn).add(moveBtn).click(function(){}); 

Comme il est dit ici http://api.jquery.com/add/

+0

Aucune idée pourquoi cela a été downvoted, fonctionne comme décrit. – Crashtor

Questions connexes