有效地从DOM元素中删除onmouseover事件

时间:2013-09-16 21:35:31

标签: javascript html dom onmouseover

我有一个HTML页面,其中包含许多onmouseover事件。这些事件与a,img,td和div标签相关联。

删除所有onmouseover事件的最有效Javascript方法是什么,假设页面已加载。

我没有使用jQuery。

(任务是在使用触摸设备访问页面时删除不需要的工具提示)

3 个答案:

答案 0 :(得分:1)

由于所有事件处理程序都指向相同的中心函数 - 您可以禁用该函数内的工具提示。

如果此功能同时处理onmouseoveronclick事件,您可以检查event.type并仅在相等mouseover.

时禁用工具提示

演示:http://jsfiddle.net/cLHgK/1/

答案 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);
   }

替换yourFunctionclasshere,告诉我它是否有效

相关问题