3

生のJSイベントにバインドできるように、IEイベントmouseenter/ (またはjQueryイベントの変換)のポリフィルはありますか?mouseleave

IE私はこれを行うためのクロスブラウザの方法があります:

node.addEventListener('mouseenter', function() {
    ...
});

node.addEventListener('mouseleave', function() {
    ...
});

以下を使用したカスタムイベントが可能であることはわかっています。

var event = new Event('mouseenter');
node.addEventListener('mouseenter', function (e) { ... });
node.dispatchEvent(event);
etc
4

1 に答える 1

4

わかりました、私はそれを行う方法を理解したようです:

http://jsfiddle.net/HXwJH/5/

node.addEventListener('mouseover', function() {    
    if (!event.relatedTarget || (event.relatedTarget !== this && !(this.compareDocumentPosition(event.relatedTarget) & Node.DOCUMENT_POSITION_CONTAINED_BY))) {
        this.dispatchEvent(new Event('mouseenter'));
    }
});

node.addEventListener('mouseout', function() {    
    if (!event.relatedTarget || (event.relatedTarget !== this && !(this.compareDocumentPosition(event.relatedTarget) & Node.DOCUMENT_POSITION_CONTAINED_BY))) {
        this.dispatchEvent(new Event('mouseleave'));
    }
});
于 2013-09-11T00:08:39.020 に答える