2009-06-30 3 views
0

J'ai une fonction js qui a toujours été le callback d'un événement click et qui dépend donc fortement de la pseudo-variable 'this'. 'ceci' est un élément <li>.Comment définir le rappel sur des éléments individuels à l'aide de jQuery

Cependant, j'ai maintenant une situation où il est parfois déclenché en utilisant une route plus compliquée, et dans ces circonstances, ceci est un élément entièrement différent. Toutefois, avant d'appeler la fonction, je suis en mesure de trouver le <li> li, mais est-il un moyen que je peux nourrir cela en tant que 'ceci'? J'ai pensé utiliser .each() sur le <li>, mais cela ne fonctionnera pas sur un seul élément.

éditer il s'avère que chaque() fonctionne sur des éléments simples .. l'erreur s'est avérée être quelque chose d'autre.

l'ont pas supprimé cette question même si, comme il pourrait être utile aux autres

Répondre

2

Vous recherchez la méthode call:

function onClick() { 
    console.log(this); // will be the #test element in both cases 
    return false; 
} 

$('#test').click(onClick); 

$('#test2').click(function() { 
    onClick.call($('#test')[0]); 
    return false; 
}); 

Bien que cela soit également possible avec apply:

onClick.apply($('#test')[0]); 

Le [0] est nécessaire pour passer l'élément DOM réel au lieu du jeu enveloppé jQuery.