javascript - 使用 JS-Function 删除 div 中的鼠标悬停

标签 javascript html css

我希望能够启用和禁用某个 div-id 的鼠标悬停函数调用,但它不起作用。

function revertcontent(){
  document.getElementById('content').src='img/content.jpg';
  document.getElementById('zentrum').addEventlistener("mouseover",true);
}
function dias( klick ){
  document.getElementById('content').src='img/'+klick+'.jpg';
  document.getElementById('zentrum').removeEventlistener("mouseover",true);
}

这里是 div,有鼠标悬停函数调用:

<div class="cont">
    <div id="zentrum" onmouseover="showvita()" onmouseout="revertcontent()">
         <img src="img/content.jpg" id="content" />
    </div>
</div>

所以,我基本上想在调用函数 (dias) 时禁用鼠标悬停,并在调用函数 (revertcontent) 时重新启用它。 (revertcontent 也确实会被其他按钮按下调用。

它似乎对 EventListeners 根本不起作用。

在此先感谢您的帮助!我不是程序员,只是一个业余爱好者

最佳答案

通常,尝试更改鼠标悬停属性是一种不好的做法。一种更简单的方法是设置一个变量,例如“isMouseoverEnabled”,然后在您的鼠标悬停处理程序中,如果该变量为 false,您将立即返回。此外,我看到每次鼠标经过时您的代码都会调用 revertContent,这会添加大量重复的事件监听器。

或者,如果您使用 javascript 而不是 mouseover 属性来绑定(bind)您的事件,则稍后取消绑定(bind)它们是微不足道的。例如,您的代码可能如下所示:

$(document).ready(function() {
    var onMouseOver = function(){
        // Do stuff here
    };

    var revertcontent = function() {
        $('#content')[0].src ='img/content.jpg';

        // We're calling "off" just in case "dias" hasn't been called,
        //    to avoid double event binding
        $('#zentrum').off('mouseover', onMouseOver )
                     .on('mouseover', onMouseOver );
    };
    var dias = function(klick) {
        $('#content')[0].src ='img/content.jpg';
        $('#zentrum').off('mouseover', onMouseOver );
    };

    revertcontent();
});

作为旁注,jquery 确实更适合这样的东西,因为它标准化了所有浏览器的东西。它使您可以花更多的时间编写代码,而花更少的时间尝试找出鼠标事件中的细微差别。

关于javascript - 使用 JS-Function 删除 div 中的鼠标悬停,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39033479/

相关文章:

javascript - 尾部调用优化在 babel ES2015 中不起作用

html - 如何调整下拉菜单的宽度?

html - 调整窗口大小会在 body 标签旁边创建边距

html - 我无法让我的页眉图片适合页面内容

html - Text Wrap Laravel 从数据库中拉取文章

php - 使用 Ajax 将 Javascript 变量传递给 PHP

javascript - 从 React 组件返回多个 <li> 元素

html - 在一行中显示图标和文本,每行之间的间距相同

javascript - 使用从右到左的语言时,有没有办法切换左右 css 值?

javascript - 在 Cloud Firestore onCreate 触发器中运行批处理或事务