Запретить анимацию на jquery
Как запреть анимацию на jquery?
Ну вот такой пример: Страничка с рисунками, когда я навожу на рисунок мне появляется блок с информацией рисунка, в этом блоке есть ссылка "Изменить", при нажатии на нее, в блоке под ссылкой появляется форма редактирования этих данных. Нужно что бы когда появилась форма человек не смог навести на другую картинку, а действие возможно выполнить после нажатия на кнопку "Отмена" в этой форме. И как это сделать? |
$.fx.off=1 // выключить $.fx.off=0 // включить |
Тоесть у меня есть блок который появляется при наведении на элемент.
$('#pic').hover(function(){
$(this).find('#nonebox').animate({'opacity': '1'},500).css({'display':'block'});
},
function(){ $(this).find('#nonebox').animate({'opacity':'0'},500).css({'display':'none'});
$('#sendbox').css({'display':'none'});
});
в блоке я нажимаю кнопку отправить сообщение
$('#sendlink').click(function(){
$('#sendbox').animate({'top':'10px'},500).css({'display':'block'});
$.fx.off = 1;//запрет на анимацию вставил
}
);
То по теории когда я вставил $.fx.off = 1; и буду наводить на другие элементы, анимация не должна срабатывать и блок должен застыть пока не будет сделано следующее действие(отправка сообщения или отмена). Но вижу что не все так просто. как это решить в моей ситуации? |
при нажатии на кнопку делайте $.fx.off = 1;
при отправки сообщения или отмене делайте $.fx.off = 0; помоему,все просто |
просто но не работает(((
Когда навожу на другие элементы форма пропадает |
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
</head>
<body>
$.fx.off сейчас равен <span id="status">0</span>
<div style="background:green;width:30px;height:30px"></div>
<a href="javascript: document.getElementById('status').innerHTML = +($.fx.off = !$.fx.off); void 0">переключить</a>
<script>
(function () {
ca=arguments.callee;
$('div').animate({
marginLeft: 300
}, 3000, function () {
$('div').animate({
marginLeft: 0
}, 3000, function () {
ca()
});
});
})();
</script>
</body>
</html>
как выеснилось мой способ работает частично-анимация доходит доконца а потом отменяеться для мгновнного откл используйте $(elem).stop(1,1); |
| Часовой пояс GMT +3, время: 20:40. |