2013-02-21 5 views
0

Я знаю, с помощью JQuery, если я хочу нагрузку выполнения изображения на событии щелчка, используется этот синтаксис,Удалить изображение динамически с помощью JQuery

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

, но если я хочу удалить то же среду выполнения изображения на событии нажатия другой кнопки, в тогда?? Я хочу, синтаксис же

+3

Вы пытались установить атрибут 'src' в пустую строку? –

+0

Ya, у меня есть, но не работает; <@Anthony ... – Hazel

ответ

1

Если вы не можете удалить изображение из йот, скрыть:

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

PLease прочитал мой комментарий выше ... и предложил другие альтернативы – Hazel

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

+0

Вот почему Я поставил два метода. @Hazel – 11684

+0

Я только что просмотрел ваш комментарий по вашему вопросу и соответствующим образом отредактировал свой ответ. @Hazel – 11684

1

Вы можете просто изменить видимость CSS свойство elemenet к скрытым. Это позволит сохранить свою позицию в макете страницы, но не видно.

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

Нет, потому что, поскольку он является анимированным GIF, анимация происходит один раз, только когда изображение загружается, после этого просто скрытие и отображение не будут воспроизводить анимацию, для воспроизведения анимации мне нужно удалять и добавлять изображение динамически, а не скрывать и отображать его ... – Hazel

+0

@ Hazel Я не верю, что это так. Проверьте эту скрипту: http://jsfiddle.net/cQhPU/ При переключении видимости вкл/выкл анимация все еще работает. –

+0

Вы правы Майком, но на этом изображении анимация продолжает двигаться, тогда как в моем случае только дверь открывается с помощью анимации и остается открытой, тогда ничего не происходит, и изображение становится статичным, поэтому в моем случае это не сработает. .. его только один цикл анимации, а не непрерывный, как в урсах, ... надеюсь, у вас есть разница – Hazel

0

У меня была аналогичная проблема с Safari. Это не позволило мне установить атрибут в пустое значение. Я хотел, чтобы кнопка запускала короткую анимацию gif, которую нужно играть ONCE ... в этом случае Спок дает Кирку хороший 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); 
Смежные вопросы