Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   Не работает связка .detach().prependTo (https://javascript.ru/forum/project/18327-ne-rabotaet-svyazka-detach-prependto.html)

Dr.And 26.06.2011 16:52

Не работает связка .detach().appendTo
 
Написал скрипт, но он что-то не работает. Где-то закралась ошибка. Помогите пожалуйста найти. Я не очень силен в написании скриптов...

Скрипт делает следуюющее:
При загрузке страницы содержимое <a></a> контейнера #contrez вырезается и помещается в переменную contPara.
При нажатии кнопки #on_btn запускается функция onClick="init()" и содержимое переменной contPara вставляется в контейнер #cont, при повторном нажатии на кнопку - содержимое контейнера #cont вырезается и опять помещается в переменную contPara.

Вот код скрипта:
$( cutdiv );
function cutdiv() {
var contPara = $('#contrez>a').detach();}
    var i = 0;
function init() {
	var s = i;
	if (s == 0) {
	contPara.appendTo('#cont');	
	i++;		
$("#cont").show(1);
$("#on_btn").attr("class", "onbtn_on");
$("#satus").attr("class", "satus_on");	
	} else {
	var contPara = $('#cont>a').detach();			
	i = 0;
$("#cont").hide(1);
$("#on_btn").attr("class", "onbtn_off");
$("#satus").attr("class", "satus_off");
		}
	}

Dr.And 26.06.2011 18:15

Частично разобрался.
Надо переменную сделать глобальной, тоесть
в строчках 3 и 14 убрать var.
Заработало во всех браузерах, кроме Internet Explorer, в котором изначально содержимое <a></a> контейнера #contrez не вырезается почему-то.

Dr.And 25.07.2011 21:19

Ненавижу IE !!!
 
Чтобы не создавать новую тему еще спрошу.
Кто подскажет, как при скрытии блока в IE останавливать в нем выполнение мультимедии
(напр. остановить воспроизведение плеера). В остальных браузерах таких проблем просто нет,
при скрытии блока все элементы в нем перестают подавать какие-либо признаки жизнедеятельности.
Но только не в IE !!!
Вот ориентировочный код: сначала скрипт
<script type='text/javascript'>
$('#s1').click(function(){
   if($("#p1").is(":hidden")){
$('.content').slideUp(300);
$('#p1').slideDown(300);
$("#p1").show();
   }else{
$('#p1').slideUp(300);}});
</script>

И собственно div с играющим плеером, которого нужно убить при скрытии блока:
<div id="s1">текст</div>
<div id="p1" class="content">
<object id="player"...><param...><param name='flashvars'...></object>
</div>

Добавление в конце скрипта $("#p1").hide(); в IE тоже ничего не дает...
Мог бы - убил бы разработчиков Эксплорера !!!


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