2013-04-06 82 views
0

我尝试一切我能想象,但我不能得到这个工作。我在这里创造一个小提琴:http://jsfiddle.net/DftyD/3/(它不是在那里工作)自定义函数添加给setInterval jQuery中

我想不断地执行我的moveit功能的鼠标悬停(如果我做它在鼠标移动,当画廊上点击调整大小,我有一个问题)

cont.bind('mouseenter', function() { 
    active = setInterval(moveit, 20); // WHAT IS WRONG HERE? 
     }).bind('mouseleave', function(){ 
    active && clearInterval(active); 
}); 

function moveit(e) { 
    var windowHeight = $(window).height(); 
    var contWidth = cont.width(); 
    var galWidth = lastImg[0].offsetLeft + lastImg.outerWidth(); 
    var left = (e.pageX - cont.offset().left) * (galWidth - contWidth)/contWidth; 
    cont.scrollLeft(left); 
}; 

我是新来的jQuery,所以我的代码是凌乱littlebit。希望你了解我的问题,也许可以帮助我。

三江源:)

回答

0

这样做时,这样你需要传递的事件,否则e.pageX未定义内moveit()

var active; 

cont.on({ 
    mouseenter : function(event) { 
     active = setInterval(function() { 
      moveit(event); 
     }, 20); 
    }, 
    mouseleave: function(){ 
     clearInterval(active); 
    } 
}); 
当然

,这将使的e.pageX值一样当鼠标进入元素时,它不会为每个区间迭代更新,因此它只移动一次。

FIDDLE

+0

大,三江源非常adeneo!这是正确的方向,但我认为这会不断触发我的功能,但它只有一次...我是在错误的方式? – 2013-04-06 19:28:22

+0

它不断触发函数,但是'event.pageX'的值总是相同的,所以没有任何动作。 – adeneo 2013-04-06 19:29:42

+0

我明白了...你能给我一个提示怎么做吗? ...对不起,我是新来的,并没有任何想法:( – 2013-04-06 19:37:33