我有一个包含许多 onmouseover 事件的 HTML 页面。这些事件链接到 a、img、td 和 div 标签。
假设页面已加载,删除所有 onmouseover 事件的最有效 Javascript 方法是什么。
我没有使用 jQuery。
(任务是在使用触摸设备访问页面时删除不需要的工具提示)
我有一个包含许多 onmouseover 事件的 HTML 页面。这些事件链接到 a、img、td 和 div 标签。
假设页面已加载,删除所有 onmouseover 事件的最有效 Javascript 方法是什么。
我没有使用 jQuery。
(任务是在使用触摸设备访问页面时删除不需要的工具提示)
由于您所有的事件处理程序都指向同一个中心函数 - 您可以禁用该函数内的工具提示。
如果此函数同时处理onmouseover
和onclick
事件 -event.type
只有当它相等时,您才能检查和禁用工具提示mouseover.
演示:http: //jsfiddle.net/cLHgK/1/
一个遍历所有元素的简单函数应该可以解决问题。这个适用于所有 div:-
function removeMouseOver() {
var divs = document.body.getElementsByTagName('div');
for (var i = 0; i < divs.length; i++) {
divs[i].onmoseover = function() {};
}
}
另一种方法是将鼠标悬停工具提示函数定义为 var
var tooltip = function(){// put your tooltip code here };
var donothing = function(){};
//to turn tooltips on:-
onmouseoverfunc = tooltip;
//to turn tooltips off:-
onmouseoverfunc = donothing;
在元素中
document.getElementById('mydiv').onmouseover = function(){mouseoverfunc();};
只需为所有具有鼠标悬停事件的事物添加一个独特的类,然后进行循环
get=document.getElementsByClassName("classhere");
for(i=0; i<get.length; i++){
get[i].removeEventListener("mouseover", yourFunction, false);
}
替换yourFunction
and classhere
,告诉我它是否有效