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

Javascript 有效地从DOM元素中删除onmouseover事件,javascript,html,dom,onmouseover,Javascript,Html,Dom,Onmouseover,我有一个HTML页面,其中包含许多onmouseover事件。这些事件链接到a、img、td和div标签 假设页面已加载,删除所有onmouseover事件的最有效Javascript方法是什么 我没有使用jQuery (任务是在使用触摸设备访问页面时删除不必要的工具提示)因为所有事件处理程序都指向同一个中心函数-您可以在该函数内部禁用工具提示 如果此函数同时处理鼠标悬停和鼠标悬停事件,则可以选中事件。键入并禁用工具提示,前提是它与鼠标悬停相同。 演示:一个简单的函数在所有元素之间循环应该可以达

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

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

我没有使用jQuery


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

因为所有事件处理程序都指向同一个中心函数-您可以在该函数内部禁用工具提示

如果此函数同时处理鼠标悬停和鼠标悬停事件,则可以选中事件。键入并禁用工具提示,前提是它与鼠标悬停相同。


演示:

一个简单的函数在所有元素之间循环应该可以达到这个目的。这一条适用于所有div:-

function removeMouseOver() {
    var divs = document.body.getElementsByTagName('div');
    for (var i = 0; i < divs.length; i++) {
        divs[i].onmoseover = function() {};
    }
}
在元素中

document.getElementById('mydiv').onmouseover = function(){mouseoverfunc();};

只需将一个唯一类添加到所有具有mouseover事件的对象中,然后创建一个循环

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

对于(i=0;i是否所有
onmouseover
都指向同一个中心函数以显示工具提示?是的,但我无法禁用工具提示,因为它在某些onclick事件中使用。您是否确实验证了这需要优化?删除事件的当前延迟时间是多少?不幸的是,我确实需要删除onmouseover事件,as iPhone在尝试单击元素时捕获了这些元素,并对其进行了错误处理。唯一的解决方案是完全删除它们。真的吗?即使您的代码明确声明在鼠标上方不执行任何操作,然后返回?奇怪。您的答案是最完整的,但另一个答案是我使用的答案!此解决方案快速有效谢谢。
get=document.getElementsByClassName("classhere");
for(i=0; i<get.length; i++){
    get[i].removeEventListener("mouseover", yourFunction, false);
   }