我有一个包含许多onmouseover事件的HTML页面。这些事件与a、img、td和div标签相关联。
假设页面已加载,最有效的JavaScript方法是什么,以删除所有onmouseover事件。
我不使用jQuery。
(任务是在使用触摸设备访问页面时删除不需要的工具提示)
我有一个包含许多onmouseover事件的HTML页面。这些事件与a、img、td和div标签相关联。
假设页面已加载,最有效的JavaScript方法是什么,以删除所有onmouseover事件。
我不使用jQuery。
(任务是在使用触摸设备访问页面时删除不需要的工具提示)
一个简单的函数循环遍历所有元素就可以解决问题。这个函数适用于所有div元素:
function removeMouseOver() {
var divs = document.body.getElementsByTagName('div');
for (var i = 0; i < divs.length; i++) {
divs[i].onmoseover = function() {};
}
}
另一种方法是将mouseover提示功能定义为变量。
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();};
只需为所有具有mouseover事件的元素添加一个唯一的类,然后进行循环
get=document.getElementsByClassName("classhere");
for(i=0; i<get.length; i++){
get[i].removeEventListener("mouseover", yourFunction, false);
}
替换yourFunction
和classhere
,告诉我它是否有效
由于您所有的事件处理程序都指向同一中心函数 - 您可以在该函数内禁用工具提示。
如果此函数处理onmouseover
和onclick
事件- 您可以检查event.type
,并仅在其等于mouseover
时禁用工具提示。
onmouseover
都指向同一个中央函数来显示工具提示吗? - Yuriy Galanter