Остановить выполнение функции
Привет.
Вот код
$("#look").mousemove(function (e) {
// отслеживание перемещения нестандартного курсора в пределах слайдера
var Cur = $('#cursor');
Cur.css({
'left': parseInt(e.pageX - 0) + 'px',
'top': parseInt(e.pageY - 80) + 'px',
'opacity': 1.0,
});
if ($('#header').css('top') == '-200px') { // вот условие
$(document).mousemove(function(r){
var sw = $(window).width();
var sh = $(window).height();
if (sw/sh > 1.6) {
var k = sw / treeInitWidth;
var w = sw;
var h = parseInt(treeInitHeight*k);
} else {
var k = sh / treeInitHeight;
var h = sh;
var w = parseInt(treeInitWidth*k);
}
var rx = w/sw;
var ry = h/sh;
var x = r.pageX;
var y = r.pageY;
var left = x*(1 - rx);
var top = (ry < 1) ? (sh-h) : y*(1 - ry);
el.css({
left : left,
top : top
});
$('.tree-container').css({
left : left,
top : top
});
});
}
else{
// что написать, чтобы остановить выполнение функции
}
});
|
что значит остановить если в принципе ничего не происходит при не выполнении условия
попробуйте e.preventDefault() или r.preventDefault() смотря куда в для какой из mousemove |
о боже, событие вешают в событии да еще и mousemove в mousemove
|
devote,
да, а какая разница. я могу этот же второй mousemove вложить в событие click. как его остановить при невыполнении условия? |
до меня дошло что значит остановить))
отписатся надо .... .unbind('mousemove', ... но в вашем случае когда подписывайтесь, сделайте не анонимную функцию, и потом эту же функцию и отписывайте |
document.onmousemove = null;
|
Цитата:
|
if ($('#header').css('top') == '-200px') { // вот условие
$(document).bind('mousemove', function(r){
//тут что то
});
}
else {
// что написать, чтобы остановить выполнение функции
$(document).unbind('mousemove')
}
|
Deff,
могу ошибатся но такой анбинд снимет все кастомные подписки на mousemove, если даже не так то кашернее бы поступить так
function onHeaderMouseMove(r) {
var sw = $(window).width();
var sh = $(window).height();
if (sw / sh > 1.6) {
var k = sw / treeInitWidth;
var w = sw;
var h = parseInt(treeInitHeight * k);
} else {
var k = sh / treeInitHeight;
var h = sh;
var w = parseInt(treeInitWidth * k);
}
var rx = w / sw;
var ry = h / sh;
var x = r.pageX;
var y = r.pageY;
var left = x * (1 - rx);
var top = (ry < 1) ? (sh - h) : y * (1 - ry);
el.css({
left: left,
top: top
});
$('.tree-container').css({
left: left,
top: top
});
}
$().ready(function () {
$("#look").mousemove(function (e) {
$('#cursor').css({
'left': parseInt(e.pageX - 0) + 'px',
'top': parseInt(e.pageY - 80) + 'px',
'opacity': 1.0
});
if ($('#header').css('top') == '-200px')
$(document).bind('mousemove', onHeaderMouseMove);
else
$(document).unbind('mousemove', onHeaderMouseMove);
});
});
PS еще тут очень пригодится прежде чем биндить, проверка, а не забиндено ли уже, сор если надо с утра напишу |
mullih,
Кошерней - но как грил Горби - главное - начать, поправить можно по ходу пьесы |
| Часовой пояс GMT +3, время: 18:57. |