我有一个HTML页面,其中包含许多onmouseover事件。这些事件与a,img,td和div标签相关联。
删除所有onmouseover事件的最有效Javascript方法是什么,假设页面已加载。
我没有使用jQuery。
(任务是在使用触摸设备访问页面时删除不需要的工具提示)
答案 0 :(得分:1)
由于所有事件处理程序都指向相同的中心函数 - 您可以禁用该函数内的工具提示。
如果此功能同时处理onmouseover
和onclick
事件,您可以检查event.type
并仅在相等mouseover.
答案 1 :(得分: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();};
答案 2 :(得分:1)
只需为具有mouseover事件的所有内容添加一个唯一的类,然后进行循环
get=document.getElementsByClassName("classhere");
for(i=0; i<get.length; i++){
get[i].removeEventListener("mouseover", yourFunction, false);
}
替换yourFunction
和classhere
,告诉我它是否有效