我知道使用 jquery,如果我想在点击事件上加载图像运行时,使用这种语法,
$("#open_door").attr("src", "../assets/door_open.gif");
但是如果我想在另一个按钮的单击事件中删除相同的图像运行时,那么?我想要相同的语法
我知道使用 jquery,如果我想在点击事件上加载图像运行时,使用这种语法,
$("#open_door").attr("src", "../assets/door_open.gif");
但是如果我想在另一个按钮的单击事件中删除相同的图像运行时,那么?我想要相同的语法
如果您无法从 dom 中删除图像,请将其隐藏:
$("#open_door").css("display","none");
您可以简单地将 elemenet 的可见性 css 属性更改为隐藏。这将允许它保持其在页面布局中的位置,但不会被看到。
$('#open_door').css('visibility', 'hidden');
你可以这样做:
$("#open_door").attr("src", ""); // Set the src to "" (nothing)
或者:
$("#open_door").remove(); // remove #open_door from the DOM.
关于您对问题的评论,在 SO 的其他地方找到了这个:
$("#myimg").removeAttr("src").attr("src", "");
或者作为最后的手段,您可以将完全白色的图像上传到您的服务器,并改为显示:
$("#open_door").attr("src", "path/to/white/image.jpg");
我对 Safari 也有类似的问题。它不会让我将属性设置为空白值。我想要一个按钮来触发一个简短的 gif 动画播放一次……在这种情况下,Spock 给了 Kirk 一个很好的 SMACK!
这是动画: http ://www.lowbird.com/data/images/2012/06/tumblr-lq96pfhnuq1qlc8fao1-400.gif
我的解决方案对我来说有点麻烦,但我使用了 .hide() 方法。如果您希望动画再次显示,您只需在更早的时间再次 .show() div。干得好:
$('#smackKirk').on('click', function(){
$('#animate').show(); // not necessary in chrome
$('#animate').attr("src", "http://www.lowbird.com/data/images/2012/06/tumblr-lq96pfhnuq1qlc8fao1-400.gif");
setTimeout(function() {
$('#animate').attr('src',"");
$('#animate').hide(); // not necessary in chrome
}, 2400);