Đối với những người nhận được ở đây người không muốn sửa đổi mã nguồn jQuery ... (CHO TÌNH YÊU CỦA ĐỨC CHÚA TRỜI không làm điều đó)
Điều này xảy ra theo nghĩa là < 9 khi kích hoạt sự kiện tùy chỉnh. Nếu bạn có quyền truy cập vào sự kiện trước khi nó đến điểm mà tức là sự cố, chỉ cần di chuyển xuống chuỗi originalEvent và đặt chuỗi cuối cùng = {};
Mã bên dưới là khi bạn đang dựa vào jQuery để xử lý giá trị trả về của trình xử lý sự kiện (false
) ở đâu đó trong chuỗi. Nếu bạn muốn hủy sự kiện ở đây, hãy xem nhận xét - hãy gọi điện đến e.stopPropagation()
trong khối try/catch
var handleAndFire = function(e) {
var ev = new $.Event('stack.overflow');
//you may have to debug and manually inspect to see how
//deep the originalEvents go
//or you could write your own function to traverse
//depth first and find it automatically, I'm lazy.
e.originalEvent.originalEvent = {}; //fix for ie < 9
ev.originalEvent = e;
$(document).trigger(ev);
}
$(document).click(handleAndFire);
bạn có thể thêm chỉnh sửa làm câu trả lời không? –
Trong tệp jquery-1.6.2.js, dòng 3172, tôi đã nhận xét 'e.cancelBubble = true; 'và chèn ' if (typeof e.cancelBubble! == 'unknown') {e.cancelBubble = true; } '. Nói cách khác, một chút sửa đổi của tập tin jquery gốc. – maan81
Xin lỗi. Muốn thêm mã: nhận xét ra - 'e.cancelBubble = true;' và chèn - 'if (typeof e.cancelBubble! == 'unknown') {e.cancelBubble = true; } ' – maan81