2009-10-30 5 views
1

Je joins un gestionnaire de clic à un bouton sur ma page. Est-il possible de savoir quel code utilise jQuery?Code jQuery pour l'événement click

$("#dreport").click(function() { 
    var str = "hello"; 
});    

Est-il de toute façon à obtenir le var str = "hello" dans le débogueur Firebug, ou partout?
J'ai essayé d'alerter:

$("#dreport").attr("click") 

Mais je ne vois que [code natif] où le corps doit être.

Répondre

0

Si ce que vous voulez montrer dans le journal est: "bonjour" alors faites comme Björn dit. Toutefois, si vous voulez afficher la logique dans votre fonction à la console Firebug vous pouvez faire comme ceci:

$(document).ready(function(){ 
    var clickFunction = function(){ 
    var str = "hello"; 
    console.log(clickFunction); 
    }; 
    $("#dreport").click(clickFunction); 
}); 

Cela apparaîtra dans la console Firebug comme « fonction() » et si vous cliquez sur il vous être pris pour le code de fonction dans la source. Vous pouvez également nommer la fonction de clic elle-même pour, par exemple, « Foo », pour le faire apparaître comme « foo() » dans Firebug, comme ceci:

var clickFunction = function foo(){ 
    var str = "hello"; 
    console.log(clickFunction); 
}; 

Bien sûr, vous pouvez également utiliser construit dans profileur de Firebug dans la console. Cliquez simplement sur le profil, puis cliquez sur l'élément que vous souhaitez profiler, puis cliquez à nouveau sur le profil. Cela affichera tous les appels de fonction déclenchés lorsque vous avez cliqué sur votre élément.

2
console.log(str); 

Ou vous pouvez créer votre propre JQuery-logger.

jQuery.fn.log = function (logMe) { 
    console.log("%s says: %o", logMe, this); 
    return this; 
}; 

Puis appelez-le comme;

$('#btn').log("logged!"); 
1

Vous pouvez également définir des points d'arrêt dans firebug et inspecter le contenu de la variable en temps réel.

0

$ ("# dreport"). Attr ("click") n'est probablement pas ce que vous pensez qu'il est - jQuery utilise le modèle d'événement du DOM (et même si ce n'était pas le cas, l'attribut serait appelé " onclick ";)

Vous pouvez regarder FireQuery qui ajoute des informations jQuery à FireBug - y compris des informations sur les événements attachés.

Et n'oubliez pas, vous pouvez taper des expressions jQuery dans la console FireBug, et voir les résultats, et $ ("# btn"). Click() lancera l'événement click.

1

essayer avec ce code:

jQuery.fn.collectHandlers = function(event) { 
    var ret = [], 
     events = $(this).data('events'); 
    if (event in events) { 
    for (var id in events[event]) { 
     if (events[event][id] instanceof Function && events[event][id].toString) { 
     ret.push(events[event][id].toString()); 
     } 
    } 
    } 
    return ret; 
} 

ils vous pouvez taper ceci dans la console Firebug: $('#btn').collectHandlers('click');. Cela renvoie un tableau de fonctions attachées en tant qu'auditeurs d'événement (via les méthodes de la famille bind de jQuery) pour l'événement 'click'.