我想做这样的事情:
function('string', function2(){})
我让用户在 string 参数中写下他想要的内容而不是执行 function2 。 问题在于: string 是一个事件监听器。当用户写点击时,我想调用 onClick(),当用户写鼠标时,我想调用 onMouseOver 等等。
我想到了 case 的东西,但我怎样才能访问所有的事件监听器?
答案 0 :(得分:0)
您应该使用addEventListener
。
element.addEventListener("string", function() {}, false);
但是,在IE< = 8的情况下,您需要使用attachEvent
,因为它不符合标准:
element.attachEvent("string", function() {});
最后,正如kybernetikos在评论中提到的那样,您可以使用简单的字典将mouse
映射到mouseover
。
如果您希望触发事件,则应使用dispatchEvent
。
答案 1 :(得分:0)
如果使用旧模型添加事件侦听器(即elem.onclick = function(){ /* */ };
),则可以使用
elem['on' + event]();
请记住,这只会触发事件侦听器,但不会创建事件(例如,它不会冒泡)。
如果您不想创建一个事件,该事件触发使用addEventlistener
添加的事件侦听器和气泡,并完成真实事件所做的所有事情,那么您必须
Event
或CustomEvent
dispatchEvent
有关更多信息和示例,请参阅MDN page。
答案 2 :(得分:0)
您可以使用.trigger执行此操作。在jsfiddle中查看此示例。在输入框中输入“dblclick”。
http://jsfiddle.net/jspatel/Suj4H/1/
<input id="writehere"> </input>
$('#writehere').dblclick(function() {
alert ('dblclick');
});
$('#writehere').bind('keypress', function(e) {
if(e.keyCode==13){
$(this).trigger( $(this).val() );
}
});