@mr_blond97

Jquery removeClass('hide') удаляет hide в картинке, но картинка не показывается с первого раза, почему?

Есть список из 2х строк, у каждой строки картинка с классами hide и pull-left. Нужно сделать так, чтобы при клике на строку1 удалялся калсс hide у картинки 1, и назначался hide картинке2. и наоборот. Код ниже не срабатывает с первого клика в гугль хроме, можно раз 20 подряд кликнуть на одну из строк и ничего не произойдет, но если кликнуть сначала на одну строку, потом на другую, то все работает как задумано. Смотрел что происходит при щелчке через f12 в хроме - там убирается класс hide, но картика остается не видна, пока не кликнуть по другой строке. Если писать с пустыми скобками то все работает нормально, только удаляется класс pull-left, который нужен. $("#v_id_2").removeClass(); Закомментирован кусок кода-мусора, который при разкомментировании избавляет о проблемы.
В мозиле такой проблемы не возникает.

<ul >
	<li id="webmoney_id_1">
		
			<img id="v_id_1" class="hide pull-left" src="img_lk/v_blue.png" alt="1">
			
			<div class="textunderline" style="margin-left: 36px;">пункт1
			</div>
		
	</li>

							
	<li id="webmoney_id_2">
		
			<img id="v_id_2" class="hide pull-left" src="img_lk/v_blue.png" alt="1">
			
			<div class="textunderline" style="margin-left: 36px;">пункт2
			</div>
		
	</li>
		
</ul>
				
<span></span>

<script>
	$( "li" ).click(function() {

		  if ( $( this).attr("id") === "webmoney_id_1" ) {
		  	$("li>img").addClass('hide'); 
		    $("#v_id_1").removeClass('hide'); 
		    $( "#currency_output" ).text( "USD" ).show();
		  }

		  if ( $( this).attr("id") === "webmoney_id_2" ) {
		  	$("li>img").addClass('hide'); 
		    $("#v_id_2").removeClass('hide'); 
		    $( "#currency_output" ).text( "USD" ).show();
		  }
   
  /*$( "span" ).text( "Если разкомментить эту строку, то картинка станет появляться сразу" ).show().fadeOut( 1000 );
  event.preventDefault();*/
});
</script>
  • Вопрос задан
  • 2364 просмотра
Пригласить эксперта
Ответы на вопрос 2
tennalian
@tennalian
Ответ написан
Комментировать
berezuev
@berezuev
#define TRUE FALSE
А зачем вы вообще делаете классами?
В Jquery есть методы show() и hide()

например:
$("li>img").hide();
$("#v_id_2").show();
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы