Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Движущийся блок jquery (https://javascript.ru/forum/misc/15219-dvizhushhijjsya-blok-jquery.html)

izlife 17.02.2011 20:40

Движущийся блок jquery
 
Подскажите пожалуйста, есть движущийся блок. Код вот такого вида:

<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#sidebar ul a").click(function(){
$("#sidebar").animate({opacity: "1", left: "+=240"}, 1200)
});
});
</script>

Вопрос такой, если ставить, return false; то перехода по ссылке не происходит. А мне нужно чтобы происходил, но после полного выполнения скрипта, как это сделать? А то переходит, когда ему вздумается) Заранее большое спасибо за ответ.

SkyLight 17.02.2011 21:32

Цитата:

Сообщение от http://api.jquery.com/animate/
.animate( properties, [ duration ], [ easing ], [ complete ] )

Вешайте на complete функцию, в которой делайте программный переход.

izlife 17.02.2011 22:15

SkyLight,
Спасибо большое, я первый скрипт пытаюсь сделать. Должно выглядеть, как:

<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#sidebar ul a").click(function(){
$("#sidebar").animate({opacity: "1", left: "+=240"}, 1200, complete)
});
});
</script>

Или как? Скрипт начинает работать как раз при клике на ссылке

izlife 18.02.2011 14:59

Или как вариант, как установить промежуток времени через который срабатывают ссылки?

Skipp 18.02.2011 15:27

<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#sidebar ul a").click(function(){
$("#sidebar").animate({opacity: "1", left: "+=240"}, 1200, function(){
//этот код вполнится когда закончит свою работу функция animate
})
});
});
</script>

izlife 18.02.2011 15:39

Skipp,
Спасибо, но а какой код нужно прописать? Мне не нужна дополнительная функция, нужно чтобы совершился переход по ссылкам #sidebar ul a (это блок с ссылками). Он сейчас происходит, но произвольно не дождавшись выполнения скрипта, хотелось бы чтобы сначала выполнялся скрипт, а потом переход, ну или же поставить задержку на переход по ссылкам.

Заранее спасибо.

Skipp 18.02.2011 15:48

<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#sidebar ul a").click(function(){
$("#sidebar").animate({opacity: "1", left: "+=240"}, 1200, function(){location.href = this.src;})
});
});
</script>

izlife 18.02.2011 16:10

Skipp,
Большое спасибо, он не на что не ругается, но все равно переходит до выполнения функции =( Стер время, за которое должно выполниться, теперь все намного быстрее, но зато хоть успевает.

walik 18.02.2011 16:27

А если попробовать return false поставить ?
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#sidebar ul a").click(function(){
$("#sidebar").animate({ opacity: "1", left: "+=240"}, 1200, function(){location.href = this.src;});
*!*return false;*/!*
});
});
</script>

izlife 18.02.2011 16:46

walik,
При таком раскладе все ссылки посылают на /undefined


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