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

  • akalyne

    akalyne

    13 Mayıs 2009
  • ibebrent

    ibebrent

    23 Temmuz 2007
  • TROPFEST

    TROPFEST

    27 Mart 2007