SORU
20 ŞUBAT 2009, Cuma


Nasıl hata ayıklama Firebug (veya benzer)aracı ile/jQuery olay bağlantılarını JavaScript

Bir WordPress kullanmak oldukça karmaşık ve dağınık* *9 bazı manipülasyon yapmak için kullanan bir web uygulaması hata ayıklamak için ihtiyacım var. Bir noktada, belirli öğeleri taşımak zorunda kaldı ki bazı olaylar, ateş ve çalışmamaya sadece.

Eğer bir özelliği düzenlemek için uygulama kaynak yapardım detaya ve eklemek bir demet Firebug console.log() tablolar ve yorum/yorum kaldırma adet kod için denemek belirlemekte sorun. Ama izin veremem uygulama kodu girin ve tamamen Firefox Firebug veya benzeri araçlar kullanarak çalışmak gerekir varsayalım.

Firebug ben ve DOM gezinmek yönetmenize izin vermekle çok iyi. Ancak bugüne kadar, Firebug ile hata ayıklama olay yapmak için nasıl anlamaya mümkün olmamıştır. Özellikle, ben sadece olay işleyicileri, belirli bir zamanda belirli bir öğe (Firebug JavaScript kesme değişiklikleri izleme kullanarak) bağlı bir listesini görmek istiyorum. Ama ya Firebug bağlı olayları görmek için yeteneği yok, ya da onu bulmak için çok aptalım. :-)

Herhangi bir öneri veya fikir var mı? İdeal olarak, sadece ve olayları DOM bugün düzenleyebilirsiniz nasıl elemanlar için benzer şekilde bağlı düzenlemek istiyorum.

CEVAP
20 ŞUBAT 2009, Cuma


How to find event listeners on a DOM node bkz.

Kısaca, bir noktada senin elemanın bağlı bir olay işleyicisi varsayarsak (örnek): $('#foo').click(function() { console.log('clicked!') });

Yani sanki inceleyin:

  • bir WordPress kullanmak 1.3.x

    var clickEvents = $('#foo').data("events").click;
    jQuery.each(clickEvents, function(key, value) {
      console.log(value) // prints "function() { console.log('clicked!') }"
    })
  • jQuery 1.4.x

    var clickEvents = $('#foo').data("events").click;
    jQuery.each(clickEvents, function(key, handlerObj) {
      console.log(handlerObj.handler) // prints "function() { console.log('clicked!') }"
    })

jQuery.fn.data jQuery içten amirin mağazaları nerede ().

  • jQuery 1.8.x

    var clickEvents = $._data($('#foo')[0], "events").click;
    jQuery.each(clickEvents, function(key, handlerObj) {
      console.log(handlerObj.handler) // prints "function() { console.log('clicked!') }"
    })

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • JamesAtiPhone

    JamesAtiPhon

    16 EYLÜL 2010
  • Jana Williams

    Jana William

    17 AĞUSTOS 2011
  • SlimaksClass

    SlimaksClass

    15 Kasım 2010