2012-06-22 24 views
6

Chúng tôi có một ứng dụng web JS chuyên sâu, phần lớn dựa trên các ràng buộc live của jQuery (thực sự chúng tôi đã thực hiện điều này từ trước jQuery v1.7).Gỡ lỗi sự kiện jQuery trong Chrome

xây dựng trong các công cụ dev của Chrome là rất lớn, tuy nhiên có một vấn đề mà giữ xảy ra mà tôi luôn tìm thấy hầu như không thể gỡ lỗi với họ: Đôi khi live xử lý của tôi không được gọi do một handler sớm dừng sự kiện bọt.

Có cách nào tôi có thể nói cho Chrome (hoặc Firebug hoặc tiện ích mở rộng hoặc bookmarklet khác (tốt nhất là miễn phí!)) Để ngắt trên trình xử lý sự kiện tiếp theo bên ngoài mã của thư viện jQuery. Bằng cách này tôi có thể chỉ cần nhấp vào nút và xem sự kiện nào nếu kích hoạt, xem qua và xem khi nào tôi vô tình dừng quá trình truyền?

Nếu không, có lý do chính đáng nào không? Điều này có thể được thực hiện?

Trả lời

3

Trong DevTools Chrome bạn có thể đặt một breakpoint theo loại sự kiện:

https://developers.google.com/chrome-developer-tools/docs/scripts-breakpoints#listeners

Bạn không thể loại trừ jQuery sự kiện mặc dù.

BTW bạn nên sử dụng delegate thay vì sống()

+0

Tôi đã thử điều này và đang gặp khó khăn. Điều này sẽ chỉ bước vào mã của thư viện jQuery. Tôi dường như không thể tìm thấy một phần của thư viện jQuery mà các cuộc gọi (hoặc áp dụng) các chức năng sự kiện bạn cung cấp cho nó. Tôi không nghĩ rằng có bất kỳ lợi ích nào của việc thay đổi thành 'đại biểu' hoặc vì tất cả họ cần phải ở trên cùng của cây DOM (có thể rất ít người không thể). Ngoài ra cả hai chức năng hiện nay không được chấp nhận. Khi chúng tôi có thời gian, chúng tôi sẽ chuyển sang ['on'] (http://api.jquery.com/on/) – Connell

+0

đại biểu đã không được chấp nhận, nó đã được thay thế bằng" on " –

+0

Vì chủ đề này đã được viết nhóm DevTools cũng đã giới thiệu khả năng các tập lệnh hộp đen, thực sự giúp ích với những thứ như thế này. Xem https://developer.chrome.com/devtools/docs/blackboxing – Thomas

7

Bạn có thể tìm thấy điều này hữu ích: http://www.sprymedia.co.uk/article/Visual+Event+2

Javascript bookmarklet được gọi là Visual tổ chức sự kiện mà trực quan cho thấy các yếu tố trên trang đó đã kiện đăng ký họ , những sự kiện đó là gì và chức năng mà sự kiện sẽ chạy khi được kích hoạt ...

Nó chỉ ra rằng không có phương pháp chuẩn được cung cấp bởi giao diện DOM được đề nghị của W3C để tìm hiểu trình xử lý sự kiện e được gắn vào một nút cụ thể .... Vì vậy, chúng tôi buộc phải xem xét các thư viện Javascript riêng lẻ, thường duy trì bộ nhớ cache của các sự kiện đính kèm (để sau này có thể xóa và thực hiện các tóm tắt hữu ích khác).

1

Ngoài phản hồi DG, đây là Chrome Extension của sự kiện trực quan. Làm việc hoàn hảo

Các vấn đề liên quan