0

我知道使用 jquery,如果我想在点击事件上加载图像运行时,使用这种语法,

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

但是如果我想在另一个按钮的单击事件中删除相同的图像运行时,那么?我想要相同的语法

4

4 回答 4

1

如果您无法从 dom 中删除图像,请将其隐藏:

$("#open_door").css("display","none");
于 2013-02-21T16:41:47.007 回答
1

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

$('#open_door').css('visibility', 'hidden');
于 2013-02-21T16:50:12.527 回答
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");
于 2013-02-21T16:42:16.993 回答
0

我对 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);
于 2014-02-07T21:51:43.003 回答