2013-10-16 77 views
1

我在頭一個事件監聽器:如何從事件監聽器訪問函數。 JavaScript的

window.onkeydown = function(e) { 
    var key = e.keyCode ? e.keyCode : e.which; 
    if(key == 27) { 
     var panel = document.getElementById('largeImgPanel'); 
    hideMe(panel); 
    } 
    if(key == 39) { 
     arrow_right.onclick = onRight; //Wrong 
    } 
}; 

下我有一個函數:

window.onload = function() { 
      ... 
    var onRight = function showNext(img_thumb) { 
    index = index + 1; 
    document.getElementById('largeImg').src = arr_big[index].src; 
    showLargeImagePanel(); 
    unselectAll(); 
}; 
arrow_right.onclick = onRight; 

我的問題是:如何 我可以從事件偵聽器「執行」 onRight變量?

+0

才能訪問對方,兩人便必須共享範圍 - 所以想出一個辦法,通過分享他們的範圍做一個更方便 –

+0

如果我讓onRight變量全球性的,有錯誤,因爲該功能一半信息尚未加載:/ –

+0

所以'onload'偵聽器回調 – lukaleli

回答

0

允許onRight是一個全局變量。雖然這並不總是可取的,但在這種情況下,它將起作用。請記住,it is best not to pollute the global namespace

window.onRight = function showNext(img_thumb) {... 

再後來,你可以訪問它以同樣的方式

arrow_right.onclick = window.onRight;