Код jQuery для события клика - PullRequest
       21

Код jQuery для события клика

1 голос
/ 30 октября 2009

Я прикрепляю обработчик кликов к кнопке на моей странице. Есть ли способ узнать, какой код использует jQuery?

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

Есть ли способ получить переменную str = "hello" в отладчике firebug или где-нибудь еще?
Я пытался предупредить:

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

Но я вижу [нативный код] только там, где должно быть тело.

Ответы [ 5 ]

2 голосов
/ 30 октября 2009
console.log(str);

Или вы можете создать свой собственный JQuery-регистратор.

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

А затем назовите это как;

$('#btn').log("logged!");
1 голос
/ 30 октября 2009

попробуйте с этим кодом:

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;
}

они вы можете напечатать в консоли firebug: $('#btn').collectHandlers('click');. Это вернет массив функций, прикрепленных в качестве прослушивателей событий (через методы семейства jQuery bind) для события click.

1 голос
/ 30 октября 2009

Вы также можете установить контрольные точки в firebug и проверять содержимое переменных в режиме реального времени.

0 голосов
/ 30 октября 2009

Если то, что вы хотите отобразить в журнале: «привет», тогда делайте, как говорит Бьёрн. Однако, если вы хотите вывести логику в своей функции на консоль Firebug, вы можете сделать это так:

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

Это будет отображаться в консоли firebug как "function ()", и если вы нажмете на нее, вы попадете в код функции в исходном коде Вы также можете назвать саму функцию щелчка, например, «foo», чтобы он отображался как «foo ()» в firebug, например:

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

Конечно, вы также можете использовать встроенный в консоль Firebug профилировщик. Просто нажмите на профиль, затем выберите элемент, который вы хотите профилировать, а затем нажмите профиль еще раз. Это выведет все вызовы функций, сработавшие при нажатии на ваш элемент.

0 голосов
/ 30 октября 2009

$ ("# dreport"). Attr ("click"), вероятно, не то, что вы думаете - jQuery использует модель событий DOM (и даже если этого не произойдет, атрибут будет называться "onclick" ";)

Вы можете посмотреть на FireQuery , который добавляет информацию jQuery в FireBug - включая информацию о прикрепленных событиях.

И не забудьте, что вы можете ввести выражения jQuery в консоль FireBug и посмотреть результаты, а $ ("# btn"). Click () запустит событие click.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...