有没有办法使用EventTarget.dispatchEvent()
或HTMLElement.click()
将数据传递给事件处理程序?
http://jsfiddle.net/yq7yqpL8/1/
var button = document.getElementById('button');
button.addEventListener('foobar', function() {
console.log(arguments); // [Event]
});
button.addEventListener('click', function() {
console.log(arguments); // [MouseEvent]
});
button.click({ foo: 'bar' });
var event = document.createEvent('HTMLEvents');
event.initEvent('foobar', true, false);
button.dispatchEvent(event, { foo: 'bar' });
答案 0 :(得分:1)
我认为您要寻找的是自定义事件,可以附加自定义参数,如下所示:
//Listen for the event
window.addEventListener("foobar", function(evt) {
alert(evt.detail);
}, false);
//Dispatch an event
var evt = document.createEvent("CustomEvent");
evt.initCustomEvent("foobar", true, true, "Object");
window.dispatchEvent(evt);
阅读here
答案 1 :(得分:-3)
这应该使用jquery来回答你的问题:
button.bind('click', { name: 'something' }, function(event) {
alert(event.data.name);
});