javascript 当一个特定类的元素被悬停时,如何调用js函数?

rdlzhqv9  于 2023-03-21  发布在  Java
关注(0)|答案(7)|浏览(133)

我试图在悬停某个类的元素时调用一个函数。假设有100个div,其中50个有class test,所以我想要的是当我悬停在有class test的div上时调用一个函数。

<div class="test" mouseover="myfunc()">
</div>
<div class="test" mouseover="myfunc()">
</div>
<div class="test" mouseover="myfunc()">
</div>
.
.
.
<script type="text/javascript">
function myfucn(){......}
</script>

但是这变得太乏味了,所以我想要的是一个通用的方法,它针对所有的测试类元素,而不需要一次又一次地编写mouseover事件。我只喜欢javascript(因为我正在学习它),但对jquery没有问题。

8zzbczxx

8zzbczxx1#

如果你不是只使用Javascript来挖矿的话,试试像这样使用Jquery。

function doSomeThing(){
     //do something
}

$("div.test").hover(function(){
     doSomeThing();
});

如果你只需要JavaScript,试试这个:

function doSomeThing(){
    //do something
}

var el = document.getElementsByClassName("test");
for (i in el){
    el[i].addEventListener("mouseover", function(){
        //do something here

        //or call a function
        doSomeThing();
    });
}

更多信息
当你做document.getElementsByClassName("test");
你会得到一个Array。然后你必须添加一个addEventListener("mouseover"),让他们知道他们什么时候被悬停。之后,你写一些你想在它的函数内做的事情。

bbuxkriu

bbuxkriu2#

您可以:

  • 获取所有元素(例如使用getElementsByClassName),然后将事件处理程序绑定到每个元素(使用addEventListener)* 或 *
  • 将事件处理程序绑定到这些元素的祖先,然后,每次触发事件时,检查事件对象的target属性(这是事件处理程序函数的第一个参数),以查看它是否是具有您所关心的类的元素
kulphzqa

kulphzqa3#

此方法使用jQuery

$('.myClass').hover(function () {
  // Do stuff here
});
mitkmikd

mitkmikd4#

如果你想用vanilla JS而不是jQuery来做,这里有一个基本的例子:

var elements = document.getElementsByClassName('YOUR_CLASS')
for (var i = 0; i < elements.length; i++) {
  elements[i].addEventListener('mouseover', function (event) {
    console.log('Element', event.target, 'is hovered')
  })
}

在这里,您基本上选择了所有具有“YOUR_CLASS”类的元素,并将一个函数绑定到mouseover事件。

lrpiutwd

lrpiutwd5#

你可以使用jQuery中的hover函数:https://api.jquery.com/hover/
例如:

$( "td" ).hover(
  function() {
    $( this ).addClass( "hover" );
  }, function() {
    $( this ).removeClass( "hover" );
  }
);`

此示例在悬停时添加类hover-并在悬停时删除类

o75abkj4

o75abkj46#

$("test").hover(
    function(event) {
    // The mouse has entered the element
    },
    function (event) {
    // The mouse has left the element
    }
 );

如果你使用的是jQuery,代码应该类似上面的代码

zbdgwd5y

zbdgwd5y7#

下面是一个简单的解决方法:

document.querySelectorAll(".your_class").forEach(elem => {
    elem.addEventListener("mouseover", () => {doSomeFunction();})
    elem.addEventListener("mouseout", () => {secondFunction();})
});

相关问题