4

我有一个包含许多 onmouseover 事件的 HTML 页面。这些事件链接到 a、img、td 和 div 标签。

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

我没有使用 jQuery。

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

4

3 回答 3

1

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

如果此函数同时处理onmouseoveronclick事件 -event.type只有当它相等时,您才能检查和禁用工具提示mouseover.

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

于 2013-09-16T21:49:47.057 回答
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();};
于 2013-09-16T21:53:25.003 回答
1

只需为所有具有鼠标悬停事件的事物添加一个独特的类,然后进行循环

get=document.getElementsByClassName("classhere");
for(i=0; i<get.length; i++){
    get[i].removeEventListener("mouseover", yourFunction, false);
   }

替换yourFunctionand classhere,告诉我它是否有效

于 2013-09-16T22:05:37.320 回答