5

Korzystanie z narzędzi programistycznych Chrome Próbuję ustalić, która funkcja jQuery zahaczyła przycisk wprowadzania na stronie w celu debugowania. Zwykle po prostu szukam, dopóki go nie znajdę, ale pomyślałem, że tym razem o to zapytam.jQuery & Chrome - Finding Hooks Finding

Czy istnieje sposób na znalezienie przycisku przycisku jQuery dla określonego przycisku w przeglądarce Chrome? Próbowałem przeglądać punkty przerwania nasłuchujących zdarzenia, ale nigdy nie wydaje się, aby znaleźć właściwą rzecz, aby go wstrzymać.

Zasadniczo, muszę wiedzieć, co jQuery/javascript jest wykonywany po kliknięciu przycisku.

Haki są realizowane w aplikacji tak:

$('.button_class').click(function(){ 
$('#button_id').click(function(){ 
etc... 
+1

możliwe duplikat [Sprawdzenie elementu do zbadać powiązania zdarzeń jQuery] (http://stackoverflow.com/questions/3960709/inspect-an-element-to-investigate-jquery-event-bindings) –

Odpowiedz

1

zależności od liczby zdarzeń/liczniki na stronie to nie zawsze działa. Ale możesz spróbować "wstrzymać" przed kliknięciem przycisku, który chcesz debugować w oknie debugowania JavaScript. W ten sposób debugger zatrzyma się na linii następnej, która wykonuje. Rzeczą, która od czasu do czasu uniemożliwia ci użycie, jest zdarzenie "hover" lub mouse move/in/out związane z elementem, który musisz przejść, aby dostać się do przycisku (w tym samego przycisku). W takim przypadku po prostu usuwam te zdarzenia (jeśli mogę), dopóki nie otrzymam tego, którego chcę. Punkty przerwania nasłuchiwania zdarzeń byłyby bardziej idealne, ale czasami są one trudne przy korzystaniu z jQuery lub innej biblioteki, a ja wysłałem żądanie funkcji do zespołu narzędzi Chrome Dev Tools, aby rozwiązać ten problem. (Co pozwala określić, jakie pliki są „swoje” i tylko „łamanie” w tych konkretnych plików)

powodzenia -ck

+1

Dzięki, pauza przed pracą. Musisz jednak uważać, jak to robię. Poruszanie myszą spowoduje także wstrzymanie strony, więc muszę się skupić na oknie narzędzi Chrome dev (wyskoczę), a następnie ustawić mysz na pozycji, nacisnąć F8, a następnie kliknąć przycisk. Nie jest to jednak całkowicie idealne, ponieważ przechodzi bezpośrednio do pliku jquery. Byłoby miło, gdyby dodali tę funkcję w narzędziach deweloperskich Chrome. Ułatwiłoby mi to nieco życie, gdybym mógł po prostu powiedzieć, żeby nie oglądał plików w pliku jQuery. (Te trzy linijki nic dla mnie nie znaczą.) – teynon

+0

@Tom Tak, to właśnie moje sentymenty. Biblioteki zmniejszają użyteczność "punktów przerwania zdarzeń DOM" (które według mnie są niesamowite) powinieneś spytać Paula Irlandczyka o tę funkcję, jeśli chcesz ... – ckozl

+0

@ckozl - Czy otrzymałeś jakąś opinię od zespołu? Jeśli nie, możesz podać link do swojej prośby o funkcję. Jest to niezbędnik, ponieważ w chwili obecnej punkty przerwania nasłuchiwania zdarzeń są bezużyteczne w przypadku korzystania z rozbudowanej biblioteki, takiej jak jQuery. – Nullius

2

Spróbuj tego:

$(yourbutton).data('events'); 
+0

Dzięki, nie dostaję całkowicie tego, czego potrzebuję, ale jest to interesujące wiedzieć. Wydaje się to po prostu powiedzieć mi, jakie słuchacze są podłączeni, ale nie wskazuje funkcji przez plik lub linię. – teynon

+0

Podobnie jak sidenote: od jQuery 1.8+ ta metoda zwróci undefined. Zamiast tego powinieneś użyć danych $ ._ (element, "zdarzenia") – Nullius

+0

http://stackoverflow.com/questions/2518421/jquery-find-events-handlers-registered-with-object – Nullius

Powiązane problemy