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

  • colacas

    colacas

    29 EKİM 2006
  • Eddie Bravo

    Eddie Bravo

    17 EKİM 2006
  • FattySpins's channel

    FattySpins's

    17 Mayıs 2009