我在页面中有一堆动态创建的元素,具有不同的“onmouseover”脚本。我想知道我是否可以使用jquery脚本自动将onmouseover
替换为等效的hoverintent
。
示例:
<div onmouseover='dothis()'>Hello</div>
<div onmouseover='dothat()'>World</div>
<div onmouseover='dosomething()'>Seeya</div>
然后使用jquery类似'对于具有绑定'onmouseover'事件的元素,用等效的hoverintent替换调用。
我甚至不确定它是否可能,我该怎么做?
答案 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'));
});
});
小提琴: