Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Вопрос по slideToggle (https://javascript.ru/forum/jquery/12237-vopros-po-slidetoggle.html)

mike_s 08.10.2010 12:09

Вопрос по slideToggle
 
Есть форма с двумя input radio и невидимым div#floor:
<form>
	<div>
		<input type="radio" id="bild-type-panel" name="bild-type" value="pdr" />
		<input type="radio" id="bild-type-brick" name="bild-type" value="kdr" />
	</div>
	<div style="display:none;" id="floor"></div>
</form>


При выборе одного из input делаю div#floor видимым и подгружаю в него содержимое:
$(document).ready(function(){
	$('#bild-type-panel').click(function(){							
		$('#floor').slideToggle("slow");								
		$.ajax({
			url: "floor/floor-panel.html",
			cache: false,
			success: function(html){
				$("#floor").html(html);
			}
		});
	});	
$('#bild-type-brick').click(function(){
	$('#floor').slideToggle("slow");							
		$.ajax({
			url: "floor/floor-brick.html",
			cache: false,
			success: function(html){
				$("#floor").html(html);
			}
		});
	});
});


Проблема в том, что если пользователь передумал и выбрал другой input, то div#floor снова закроется.
Подскажите как сделать, чтобы если div#floor уже открыт не выполнять $('#floor').slideToggle("slow"); а просто подгружать содержимое.

mike_s 08.10.2010 12:36

Добавил:
$("#floor:not(.active)").slideToggle("slow");
$('#floor').addClass("active");

Теперь работает. Нормальное ли это решение?

<script>
$(document).ready(function(){
	$('#bild-type-panel').click(function(){
		$("#floor:not(.active)").slideToggle("slow");
		$('#floor').addClass("active");								
		$.ajax({
			url: "floor/floor-panel.html",
			cache: false,
			success: function(html){
				$("#floor").html(html);
			}
		});
	});	
$('#bild-type-brick').click(function(){
	$('#floor').slideToggle("slow");	
		$("#floor:not(.active)").slideToggle("slow");
		$('#floor').addClass("active");									
		$.ajax({
			url: "floor/floor-brick.html",
			cache: false,
			success: function(html){
				$("#floor").html(html);
			}
		});
	});
});
</script>

mike_s 08.10.2010 12:58

Вопрос можно удалить.
Понял всю его глупость.


Часовой пояс GMT +3, время: 01:26.