gpt4 book ai didi

jQuery attr() 更改 img src

转载 作者:行者123 更新时间:2023-12-03 22:09:58 25 4
gpt4 key购买 nike

我正在用 jQuery 制作一些火箭发射效果。当我点击火箭时,它会与另一个火箭图像交换,然后发射。当我单击“重置”链接时,Rocket 必须重置起始位置,并且图像必须恢复原状。但有两个问题。首先,“我的火箭图像不会恢复”。其次 - 在它恢复到初始位置后,如果我再次单击火箭,它不会启动。你能看到并找到我的解决方案吗?

http://jsfiddle.net/thisizmonster/QQRsW/

$("#resetlink").click(function(){
clearInterval(timerRocket);
$("#wrapper").css('top', '250px');
$("#rocket").attr('src', 'http://www.kidostore.com/images/uploads/P-SAM-rocket-blk.jpg');
});

您可以看到 $("rocket").attr() 行。

最佳答案

您可以在此处删除原始图像:

newImg.animate(css, SPEED, function() {
img.remove();
newImg.removeClass('morpher');
(callback || function() {})();
});

剩下的就是newImg。然后使用 #rocket 重置链接引用图像:

$("#rocket").attr('src', ...

但是您的 newImg 没有 id 属性,更不用说 rocketid 了。

要解决此问题,您需要删除 img,然后将 newImgid 属性设置为 rocket :

newImg.animate(css, SPEED, function() {
var old_id = img.attr('id');
img.remove();
newImg.attr('id', old_id);
newImg.removeClass('morpher');
(callback || function() {})();
});

然后你会再次获得 Shiny 的黑色火箭:http://jsfiddle.net/ambiguous/W2K9D/

更新:更好的方法(如 Mellamokb 所指出的)是隐藏原始图像,然后在按下重置按钮时再次显示它。首先,将重置操作更改为如下所示:

$("#resetlink").click(function(){
clearInterval(timerRocket);
$("#wrapper").css('top', '250px');
$('.throbber, .morpher').remove(); // Clear out the new stuff.
$("#rocket").show(); // Bring the original back.
});

并在newImg.load函数中,抓取图像的原始大小:

var orig = {
width: img.width(),
height: img.height()
};

最后,完成变形动画的回调变为:

newImg.animate(css, SPEED, function() {
img.css(orig).hide();
(callback || function() {})();
});

新增和改进:http://jsfiddle.net/ambiguous/W2K9D/1/

$('.throbber, .morpher') 泄漏到插件外部并不是最好的事情,但只要有记录,就不是什么大问题。

关于jQuery attr() 更改 img src,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5986954/

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