2013-02-21 73 views
0

我知道使用jquery,如果我想在点击事件负荷的形象运行时,将使用此语法,删除图像动态使用jQuery

$("#open_door").attr("src", "../assets/door_open.gif"); 

,但如果我想取消对另一个按钮的单击事件相同的图像运行时,然后??我想对于同一

+3

您是否尝试过设置'src'属性为空字符串? – 2013-02-21 16:41:26

+0

雅,我有,但没有工作; <@Anthony ... – Hazel 2013-02-21 16:42:28

回答

1

语法如果不能从DOM中删除图像,隐藏:

$("#open_door").css("display","none"); 
+0

请阅读我上面的评论...并建议其他替代品 – Hazel 2013-02-21 17:29:04

0

你可以这样做:

$("#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"); 
+0

我不应该从DOM中删除元素,所以删除方法是没有用的,基本上我使用动画GIF作为图像加载运行时,但如此给予空白src =“”属性不断重复动画,不会清空图像标签...所以请建议另一种替代... – Hazel 2013-02-21 16:44:31

+0

这就是为什么我提供了两种方法。 @Hazel – 11684 2013-02-21 16:44:59

+0

我刚刚看到你对你的问题的评论,并相应地编辑了我的答案。 @Hazel – 11684 2013-02-21 16:47:33

1

您可以在elemenet的可见性CSS属性简单地改变隐藏。这将允许它保持其在页面布局中的位置,但不会被看到。

$('#open_door').css('visibility', 'hidden'); 
+0

不,因为它是一个动画GIF,只有当图像加载后,动画才会出现一次,之后只是隐藏和显示不会重播动画,我需要动画重播动态删除和添加图像,而不是隐藏和显示它... – Hazel 2013-02-21 17:28:25

+0

@Hazel我不相信是这样。检查此小提琴:http://jsfiddle.net/cQhPU/当您关闭/打开可见性时,动画仍然有效。 – 2013-02-21 17:45:52

+0

你是对的Mike,但在这张图片中,动画继续移动,而在我的情况下,只是使用动画打开门并保持打开状态,然后没有任何反应,图像变得静止,所以在我的情况下它不起作用。 ..它只是一个循环的动画,而不是连续的一个在urs中,...希望你得到了区别 – Hazel 2013-02-21 17:50:13

0

我和Safari有类似的问题。 它不会让我将该属性设置为空白值。我想要一个按钮来触发一个简短的gif动画,一次播放......在这种情况下,Spock给了Kirk一个很好的SMACK!

这里的动画: http://www.lowbird.com/data/images/2012/06/tumblr-lq96pfhnuq1qlc8fao1-400.gif

我的解决办法是对我的口味有点麻烦,但是我用了.hide()方法。如果您希望动画再次显示,您只需在更早的时间再次显示()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);