如何从事件侦听器访问函数。JavaScript
我在标题中有一个事件侦听器:如何从事件侦听器访问函数。JavaScript,javascript,event-listener,Javascript,Event Listener,我在标题中有一个事件侦听器: 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
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变量 允许
onRight
成为全局变量。虽然这并不总是可取的,但在这种情况下,它会起作用。记住
然后你可以用同样的方式访问它
arrow_right.onclick = window.onRight;
为了能够相互访问,这两个变量必须共享作用域-因此,如果我将onRight变量设置为全局变量,那么可以通过增加一个可访问性来共享它们的作用域,这是一个错误,因为此函数的一半信息尚未加载:/so在
onload
listener中添加onRight
事件侦听器callback@GudronSwiss-您不必担心这一点,因为如果信息位于函数内部,则在调用之前不会收集信息。并且在加载页面之前不会调用它。
arrow_right.onclick = window.onRight;