IE9 Вперед события мыши через маскирующий холстовой элемент

Мои абсолютно расположенные холстовые элементы блокируют все события мыши так, что ничто под ними не может быть щелкнуто, та же самая проблема, упомянутая здесь и здесь.

У меня есть несколько холстовых слоев, которые должны быть у определенных z-индексов, поэтому мне нужно пересылать события мыши через холсты. pointer-events: none; работает в хороших браузерах, но для IE9 мне нужен javascript, вот мое текущее решение,

 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);
                 });
            });   

Рабочий пример, jsFiddle

Questions;

1. Я создаю новое событие и передаю соответствующие данные, будет ли безопасно передать вариатор evt с измененной целью и currentTarget?

2. Как я могу прогибать правый клик?

Или у кого-нибудь есть лучший способ это сделать? Другие связанные с этим вопросы довольно старые.

5
задан Community 23 May 2017 в 11:58
поделиться