2013-10-08 214 views
0

在下面的一段代码中,我想将delta参数传递给fadeOut所调用的函数,而不必在这些函数的范围之外设置变量。可能吗?将函数参数传递给另一个函数

$(window).bind('mousewheel', function(event, delta, deltaX, deltaY) { 
    $('#view img').fadeOut('slow', function() { 
     $('.view-loading').fadeIn('fast'); 
     showcase.rotate(delta); 
    }); 
}); 
+3

在你的例子中,是不是通过闭包变量delta可用于内部函数? –

+2

你可以在范围内访问它,所以为你的回调提供参数有什么意义? – lukaleli

+0

@SeanVieira不,我弄不明白。 – yoda

回答

1

必须手动定义与jQuery的增量“滚轮”事件

$(window).bind('mousewheel', function(event) { 
    event = event.originalEvent; 
    var delta = event.wheelDelta; 
    $("#view img").fadeOut('slow', function() { 
     $('.view-loading').fadeIn('fast'); 
     showcase.rotate(delta); 
     showcase.fillRect(100, 10, 150, 100); 
    }); 
}); 
2

我真的不能制定出交易是用jQuery和mousewheel(它晚了,我累了)的话,但使用jQuery 1.9.1,我可以的了originalEvent财产得到delta事件对象(其是在内部函数内的范围。(fiddle)。

$(window).bind('mousewheel', function(event) { 
    $('#view img').fadeOut('slow', function() { 
     $('.view-loading').fadeIn('fast'); 
     showcase.rotate(event.originalEvent.deltaY); 
    }); 
}); 
相关问题