2012-04-02 36 views
5

Như bạn có thể hoặc có thể không nhận thức được như của jQuery 1.7 toàn bộ hệ thống sự kiện đã được viết lại từ mặt đất lên. Các codebase là nhanh hơn nhiều và với phương thức .on() mới có rất nhiều tính đồng nhất để kết nối các trình xử lý sự kiện.cách truy cập dữ liệu nội bộ jquery?

Một sử dụng để có thể truy cập vào dữ liệu sự kiện và investiate những sự kiện được đăng ký vào bất kỳ yếu tố cho nội bộ, nhưng thời gian gần đây thông tin nội bộ này đã được ẩn dựa trên các tình huống sau ...

Dường như Dữ liệu "riêng tư" luôn luôn được lưu trữ trên .data (jQuery.expando) - Đối với "đối tượng", nơi việc xóa đối tượng cũng nên xóa bộ đệm của nó, điều này có ý nghĩa gì đó.

Trong lĩnh vực các nút tuy nhiên, tôi nghĩ chúng ta nên lưu trữ các thành viên "tin" trong một (tư nhân) bộ nhớ cache riêng biệt để họ không làm ô nhiễm các đối tượng được trả về bởi $ .fn.data()"

Mặc dù tôi đồng ý với thay đổi ở trên để ẩn dữ liệu nội bộ, tôi thấy rằng việc truy cập vào thông tin này có thể hữu ích cho việc gỡ lỗi và thử nghiệm đơn vị

Cách mới để nhận đối tượng sự kiện jquery nội bộ trong jQuery 1.7 ?

Trả lời

3

Trong jQuery 1.7, sự kiện được lưu trữ ở vị trí thay thế có thể truy cập thông qua nội bộPhương pháp(nhưng lưu ý rằng phương pháp này được ghi thành để sử dụng nội bộ chỉ trong mã nguồn, vì vậy hãy sử dụng nó theo các rủi ro của riêng bạn và chuẩn bị để thay đổi hoặc biến mất trong các phiên bản sau của thư viện).

Để nhận các sự kiện được đăng ký trên một phần tử, bạn có thể gọi $._data() trên phần tử đó và kiểm tra thuộc tính events của đối tượng được trả về. Ví dụ:

$("#yourElement").click(function() { 
    // ... 
}); 

console.log($._data($("#yourElement")[0]).events); 
Các vấn đề liên quan