2013-10-08 215 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); 
    }); 
}); 
相關問題