gpt4 book ai didi

javascript - 删除监听器类不会停止与 Jquery Javascript 关联的声音事件

转载 作者:行者123 更新时间:2023-11-30 09:42:24 24 4
gpt4 key购买 nike

我在将鼠标悬停在图像上时播放声音(这已经可以正常工作了),并且想要包含一个按钮以在需要时将其关闭。不幸的是,我无法让它发挥作用。

我目前的代码是这样的:

用于创建声音

//a bunch of code to generate the audio that ends on

var mouseoversound = createsoundbite('mysound.mp3')

触发它

  $(".play").mouseover(function() {
mouseoversound.play();
});

监听器元素

<%= image_tag "image.png", class:'logo-image play' %>

我认为禁用它的最简单解决方案是删除元素监听器中事件(即“.play”)的“监听”类,所以我累了:

  $(".sound").click(function(){
$(".logo-image").removeClass("play");
});

//.sound is the class of the button that's intended to block it.

虽然后一个脚本确实成功删除了“播放”类,但每次我将鼠标悬停在图像上时,声音都会继续播放。我错过了什么?声音不应该停止播放吗?

您是否看到任何其他解决方案?

干杯

最佳答案

问题是因为事件处理程序绑定(bind)到元素。在事件绑定(bind)后删除类不会影响该绑定(bind)。要影响事件处理程序,您可以调用 off(),如下所示:

$(".sound").click(function(){
$(".logo-image").off('mouseover');
});

或者,如果您想根据类切换声音功能,您可以保持当前逻辑并检查元素是否仍然在 mouseover 处理程序中具有类:

$(".logo-image").mouseover(function() {
if ($(this).hasClass('play') {
mouseoversound.play();
}
});

$(".sound").click(function(){
$(".logo-image").toggleClass("play");
});

关于javascript - 删除监听器类不会停止与 Jquery Javascript 关联的声音事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40527189/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com