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

  • AlaskanGrizzly

    AlaskanGrizz

    30 EKİM 2009
  • Felice Musique

    Felice Musiq

    22 NİSAN 2014
  • Vortez

    Vortez

    27 Temmuz 2009