2014-10-06 54 views
-1

我害我不能够触发“DBLCLICK()”中的错误 - 事件在那里绑定像这样的元素:与作为事件引用特定元素调用方法

<span id="1" ondblclick="myMethod();">Click!</span> 

其实我不能说为什么它不工作,但它似乎是由一些巨大的旧javascript在后台运行引起的。

我想:

$('#1').trigger('dblclick'); 
$('#1').trigger('ondblclick'); 
$('#1').dblclick(); 

我需要触发myMethod的(),但是这一个根据给定的“EVT” -Variable存储有关元素的一些信息被解雇。有没有办法让这个元素为“evt-referrer”来调用myMethod()而不必触发dblclick()

这会阻止我从巨大的更改代码(myMethod())或排除dblclick事件的故障。

解决方案: 没关系,发现连续两次点击事件会在双击中发生。

回答

1

jQuery只会触发jQuery附加的事件。要触发本地事件做:

// 1) remove 'ondblclick'-attribute from span in html 
// 2) get the element 
var elem = document.getElementById('1'); 
// 3) attach eventListener to element in native way 
elem.addEventListener('dblclick', myMethod); 
// 4) trigger the event in native way 
elem.dispatchEvent(
    new Event('dblclick', {bubbles: true}); 
); 

如果您myMethod取决于一个事件,你不能把它没有。

+0

这一个返回true而不会引发myMethod() - 我错过了什么吗? – 2014-10-06 11:53:08

0

事件不会触发ondoubleclick attr。

ondoubleclick可以通过

$(榆树)。点击()被解雇点击()。 但这真是脏!

+0

我试过这个,但得到一个错误:构造函数示例(字符串)未定义 – 2014-10-06 12:49:48

+0

@ M41DZ3N dblclick调度原生方式**不触发ondblclick attr。 – 2014-10-06 12:58:30