Các phần tử canvas được định vị hoàn toàn của tôi đang chặn tất cả các sự kiện chuột để không có gì bên dưới chúng có thể được nhấp, cùng một vấn đề được đề cập here và here.IE9 Chuyển tiếp các sự kiện chuột qua phần tử canvas masking
Tôi có nhiều lớp canvas cần phải ở chỉ mục z cụ thể nên tôi cần chuyển tiếp các sự kiện chuột qua canvas. pointer-events: none;
công trình trong các trình duyệt tốt, nhưng đối với IE9 Tôi cần javascript để làm điều đó, đây là giải pháp hiện tại của tôi,
var evts = [ 'click', 'mousedown', 'mouseup', 'dblclick'],
canvases = $('canvas');
$.each(evts, function(_, event){
canvases.bind(event, function(evt){
var target,
pEvent;
$(this).hide();
target = document.elementFromPoint(evt.clientX, evt.clientY);
$(this).show();
pEvent = $.Event(event);
pEvent.target = target;
pEvent.data = evt.data;
pEvent.currentTarget = target;
pEvent.pageX = evt.pageX;
pEvent.pageY = evt.pageY;
pEvent.result = evt.result;
pEvent.timeStamp = evt.timeStamp;
pEvent.which = evt.which;
$(target).trigger(event, pEvent);
});
});
dụ làm việc, jsFiddle
câu hỏi;
1. Tôi đang tạo sự kiện mới và chuyển qua dữ liệu có liên quan, có an toàn khi vượt qua biến số evt
var với mục tiêu và mục tiêu hiện tại được sửa đổi không?
2. Làm thế nào tôi có thể thúc đẩy nhấp chuột phải?
Hoặc có ai có cách nào tốt hơn để thực hiện việc này không? Các câu hỏi liên quan khác khá cũ.
Tôi đang cố gắng để gửi các sự kiện thông qua vải, không vào canvas. Trong IE9, bất kỳ phần tử nào bên dưới canvas không nhận được các sự kiện nhấp chuột được truyền vào nó. Bạn có thể thấy những gì tôi có nghĩa là [ở đây] (http://jsfiddle.net/VvPPW/1/) trong IE9. – Andrew
Oh derp, tôi đã không nhận thấy các yếu tố bên dưới không phải là tranh vẽ! Tôi đã chỉnh sửa câu trả lời của tôi nhưng thực tế đáng buồn ở đây là vẫn không có cách nào vàng để làm điều đó. –
Ngoài ra, tôi đã thêm một giải pháp cho bit nhấp chuột phải của bạn –