0

要素の背後でイベントを発生させようとしています。イベントがターゲット要素にバインドされていない場合、エラーがスローされます。

ページ全体を覆う要素があります。発生するeventと、要素は消え、javascript はそのevent背後にある要素でそれをシミュレートします。関連コード:

e.target.parentNode.removeChild(e.target);  
var ghost = document.elementFromPoint(e.pageX, e.pageY);
ghost.dispatchEvent(e.type);

ghostその特定のイベントがバインドされていない場合、それは醜いをスローすることを除いて、これは完全に機能しますUNSPECIFIED_EVENT_TYPE_ERR: DOM Events Exception 0

イベントがバインドされている場合にゴーストを検出する方法はありますか? ライブラリはありません。

4

1 に答える 1

1

.dispatchEvent文字列ではなく、Eventオブジェクトを受け取ります。

http://jsfiddle.net/xEmcy/1/を参照してください

document.querySelector("div").addEventListener("click", function(e) {
    var evt = document.createEvent('Event');
    evt.initEvent(e.type, true, true);
    document.querySelector("span").dispatchEvent(evt);
}, false);


document.querySelector("span").addEventListener("click", function(e){
   alert("via trigger"); 
});​

また、スパンにイベントリスナーがない場合にスローされないこともテストしました。

于 2012-11-30T17:04:30.870 に答える