javascript - 如何从事件监听器访问函数。 JavaScript

标签 javascript event-listener

我在 header 中有一个事件监听器:

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 为全局变量。尽管这并不总是可取的,但在这种情况下它会起作用。请记住,it is best not to pollute the global namespace .

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

稍后您可以以相同的方式访问它

arrow_right.onclick = window.onRight;

关于javascript - 如何从事件监听器访问函数。 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19413441/

相关文章:

javascript - 'addEventListener`在幕后是如何工作的?

jquery - 当 Angular 开始销毁时,我们是否需要取消绑定(bind)指令中的事件监听器?

javascript - 当一个 div block 被触摸并且在同一条线上时,我如何将一个 div block 放在另一个垂直排列的下方?

javascript - 未知提供者 : $resourceProvider <- $resource with AngularJS

javascript - 删除带参数的事件监听器

javascript - 在 JavaScript 中动态添加 EventListener

c# - 通过 MouseDown 创建一个圆并移动它

javascript - 错误 : Cannot find module '../node-v11-darwin-x64/node_sqlite3.node'

javascript - jQuery 用户界面 : button to open link in new window

javascript - 在 anchor 中使用 # 实现 JavaScript 功能