2010-11-14 4 views
0

J'ai de la difficulté à trouver la solution pour cette raison, peut-être sous mon nez.Combinaison de chaîne et d'objet en tant que sélecteur jQuery

Mais existe-t-il un moyen de combiner essentiellement une chaîne et un objet afin que je ne répète pas la même méthode sur un certain événement?

$j(window).resize(function(){ 
    //stuff here 
}); 

$j('body').resize(function(){ 
    //same stuff here 
}); 

Peut-être que je ne fais que penser à tort?

Merci.

Répondre

2

Vous pouvez ajouter un sélecteur à l'autre avec .add

Par exemple:

 
$j(window).add('body').resize(function(){ 
    //same stuff here 
}); 
+0

Lors des tests, cela semble être la meilleure solution. Merci! – jel402

0

Je pense que vous parlez de mots reserverd javascript. Vous avez une liste ici.

http://www.quackit.com/javascript/javascript_reserved_words.cfm

+0

Pas tout à fait. Je travaille avec du code hérité, et pour une raison quelconque, ils ont le même bind, un sur l'objet fenêtre (que je connais est un mot réservé - nous l'appelons intentionnellement) et un sur le corps de l'élément DOM. – jel402

2

affecter la fonction à une variable.

var handler = function(){ 
    //stuff here 
}; 

$j(window).resize(handler); 

$j('body').resize(handler); 

Ou passer un tableau des éléments DOM comme celui-ci:

$j([window, document.body]).resize(function(){ 
     //stuff here 
}); 
+0

+1 J'ai été surpris ce n'était pas mentionné avant! Les fonctions sans nom sont bonnes à avoir, mais si vous allez utiliser la fonction identique deux fois puis lui donner un nom, ne déclarez pas deux fois une fonction sans nom. –

+0

La deuxième réponse est bonne, mais avant de vous donner une vérification, pouvez-vous répondre si je peux passer dans un tableau mixte, un avec un objet jQuery et une fenêtre? [window, $ j ('soandso)] – jel402

+0

@ jel402 - Pour l'objet jQuery, vous devez extraire l'élément DOM comme ceci: '$ j (' soandso) [0]' (en supposant qu'il n'y ait qu'un seul élément) . – user113716

1

Essayez this:

$("body").add(window).resize(function(){ 
    //stuff here 
}); 
Questions connexes