用onmouseover替换所有元素以使用hoverintent

时间:2012-07-13 15:37:39

标签: jquery hoverintent

我在页面中有一堆动态创建的元素,具有不同的“onmouseover”脚本。我想知道我是否可以使用jquery脚本自动将onmouseover替换为等效的hoverintent

示例:

<div onmouseover='dothis()'>Hello</div>
<div onmouseover='dothat()'>World</div>
<div onmouseover='dosomething()'>Seeya</div>

然后使用jquery类似'对于具有绑定'onmouseover'事件的元素,用等效的hoverintent替换调用。

我甚至不确定它是否可能,我该怎么做?

1 个答案:

答案 0 :(得分:0)

不确定x-browser如何兼容,但适用于Chrome。

我抓住定义了onmouseover属性的所有元素。我遍历每个元素,保存onmouseover属性值,然后从元素中删除属性。然后我向每个元素添加一个新的悬停事件,设置悬停时的超时并在悬停时清除它。超时执行时,它会运行保存的onmouseover属性值。

默认超时时间为1秒(1000毫秒)。

jQuery的:

$('[onmouseover]').each(function(){

    var _ = $(this).attr('onmouseover');

    $(this).attr('onmouseover', '').hover(function(){    
        $(this).data('timeout', setTimeout(function(){ eval(_); },1000));         
    },function(){        
        clearTimeout($(this).data('timeout'));        
    });

});​

小提琴:

http://jsfiddle.net/iambriansreed/D3dmv/