2010-10-07 12 views
0
<input type='button' id='btn' value='click' /> 

<script type="text/javascript"> 
var jObject = { 
    bind : function(){ 
    var o = document.getElementById('btn'); 
    o.onclick = function(){ 
    // How can I find caller from here ? 
    } 
    } 
}; 
jObject.bind(); 
</script> 

MISE À JOURComment puis-je trouver l'appelant de la fonction interne?

Je lis un truc d'ici - http://www.mennovanslooten.nl/blog/post/62

Et maintenant je peux obtenir jobject dans la fonction intérieure.

<input type='button' id='btn' value='click' /> 

<script type="text/javascript"> 
    var jObject = { 
     bind : function(){ 
      var o = document.getElementById('btn'); 
      o.onclick = function(jObj){ // 1. add this 
       return function(){  // 3. wrap with return function(){ ... } 
        alert(jObj);  // 4. now I can get jObject here. 
       } 
      }(this);     // 2. and this 
     } 
    }; 
    jObject.bind(); 
</script> 
+0

Que voulez-vous dire par l'appelant? – epascarello

+0

L'appelant est quelqu'un qui appelle la fonction. Exemple dans le code ci-dessus, Caller est le bouton (id = btn). – diewland

Répondre

0

l'intérieur de votre onclick, this se référera à la vous cliquez dessus, par exemple élément <input id="btn">:

var jObject = { 
bind : function(){ 
    var o = document.getElementById('btn'); 
    o.onclick = function(){ 
    alert(this.value); //alerts 'click' 
    } 
} 
}; 
jObject.bind(); 
+0

Merci Craver, Et est-ce possible si je veux aussi obtenir jObject de cette fonction interne? – diewland