1

与关于 jQuery custom events 的这个问题类似,我试图找出效果return false;是什么,但我没有使用 jQuery。我正在通过以下方法触发自定义事件:

var event = document.createEvent('Event');
event.initEvent('CustomName', false, true);
element.dispatchEvent(event);

这被包装在一个函数中,我在调度事件后返回事件对象。现在,我在触发代码中寻找一种方法来查看是否有一个侦听器返回false,以便我可以阻止进一步执行。我如何能够检测其中一个侦听器是否false以跨浏览器的方式返回(IE 7+)?

4

1 回答 1

1

它指定创建的事件是否会冒泡

(编辑)考虑以下示例:

var evt = document.createEvent('Event');
evt.initEvent('myevent', true, true); // the third argument here specifies whether the event can be cancelled
var elem = document.getElementById('mydiv');
elem.addEventListener('myevent', function(e){
    e.preventDefault();
}, true);
console.log(elem.dispatchEvent(evt)); //Here you will get return value of false because in the event handler you called e.preventDefault()

问题是您希望它与 IE 7+ 一起使用,但 IE 7 和 8 首先不支持 document.createEvent

于 2013-01-03T22:19:42.103 回答