我正在寻找在 HTML、JS 中创建自定义事件。
<input type="text" oncustombind="foo(event);" />
我怎样才能创建一个这样的?'oncustombind' 是我要创建的自定义事件。我应该能够调用 oncustombind 属性中定义的函数/代码。另外,我需要将一些数据传递给事件对象。
我不想使用任何库,例如 jquery、YUI。
任何帮助将不胜感激。
我正在寻找在 HTML、JS 中创建自定义事件。
<input type="text" oncustombind="foo(event);" />
我怎样才能创建一个这样的?'oncustombind' 是我要创建的自定义事件。我应该能够调用 oncustombind 属性中定义的函数/代码。另外,我需要将一些数据传递给事件对象。
我不想使用任何库,例如 jquery、YUI。
任何帮助将不胜感激。
你想要一个CustomEvent
它们应该很容易使用,但浏览器支持很差。但是DOM-shim应该可以解决这个问题。
var ev = new CustomEvent("someString");
var el = document.getElementById("someElement");
el.addEventListener("someString", function (ev) {
// should work
});
el.dispatchEvent(ev);
使用new Function
and是不好的做法with
,但这可以通过以下方式完成:http: //jsfiddle.net/pimvdb/72GwE/13/。
function trigger(elem, name, e) {
var func = new Function('e',
'with(document) {'
+ 'with(this) {'
+ elem.getAttribute('on' + name)
+ '}'
+ '}');
func.call(elem, e);
}
使用以下 HTML:
<input type="text" oncustombind="console.log(e, type, getElementById);" id="x">
然后触发事件,如:
trigger(document.getElementById('x'), 'custombind', {foo: 123});