我有一些类名为“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);
});
但是我发现在jQuery 1.8中,toggle()已经被弃用了。
所以我尝试这样做:
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;
}});
但结果并不完美。有时候,图片无法改变状态。你知道问题出在哪里吗?
$(this).attr("src",src).data("clicked",true);
。或者根据 roXon 的答案稍微改动整个代码块。 - nnnnnn