gpt4 book ai didi

javascript - jQuery : Use an alternative to . toggle() 已弃用

转载 作者:搜寻专家 更新时间:2023-11-01 05:01:36 27 4
gpt4 key购买 nike

我有一些类名为“.mute_btn”的图像,当我点击它们时,我的图像源正在改变:

$('.mute_btn').toggle(function () {
var clicked = false;
var src = $(this).attr("src");
src = src.replace(/(.*)\.(png|gif|jpg|jpeg)$/, "$1-over.$2");
$(this).attr("src", src);
}, function () {
var src = $(this).attr("src");
src = src.replace(/(.*)-over\.(png|gif|jpg|jpeg)$/, "$1.$2");
$(this).attr("src", src);
});

但我已经看到 toggle() 在 jQuery 1.8 中已被弃用

所以我试着这样做:

var clicked = false;
$('.mute_btn').click(function() {
if (clicked) {

var src = $(this).attr("src");
src = src.replace(/(.*)-over\.(png|gif|jpg|jpeg)$/, "$1.$2");
$(this).attr("src", src);
clicked = false;
}
else {
var src = $(this).attr("src");
src = src.replace(/(.*)\.(png|gif|jpg|jpeg)$/, "$1-over.$2");
$(this).attr("src", src);
clicked = true;
}});

但结果并不完美。有时,图像不会改变状态。

你知道这是怎么回事吗?

最佳答案

我怀疑问题在于您有多个图像,但您正试图使用​​单个变量来管理它们的点击状态。尝试按如下方式针对各个元素存储点击状态:

$('.mute_btn').click(function() {
if ($(this).data("clicked")) {
var src = $(this).attr("src");
src = src.replace(/(.*)-over\.(png|gif|jpg|jpeg)$/, "$1.$2");
$(this).attr("src", src);
$(this).data("clicked",false);
}
else {
var src = $(this).attr("src");
src = src.replace(/(.*)\.(png|gif|jpg|jpeg)$/, "$1-over.$2");
$(this).attr("src", src);
$(this).data("clicked",true);
}
});

请注意,您可以缓存您的 $(this) 对象,而不是每次都创建一个新对象,但我没有这样做,以便解决您的问题所需的更改更加明显。

关于javascript - jQuery : Use an alternative to . toggle() 已弃用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14478994/

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