相关疑难解决方法(0)

事件是一个全局变量,可以在回调链中的任何地方访问?

我只是在玩DOM和javascript的事件监听器并注意到这一点:

function chained(msg) {
    console.log(msg, event);
}

function onClick() {
    chained('the body was clicked');
}

document.body.addEventListener('click', onClick);
Run Code Online (Sandbox Code Playgroud)

现在有趣的事情......这将输出:

"点击了身体,(MouseEvent)"

然后我问,为什么?如何通过事件对象而不在chained通话中发送它?

function chained(msg) {
    console.log(msg, namedEventObj); //throw error namedEventObj is not defined
}

function onClick(namedEventObj) {
    console.log(event); //outputs (MouseEvent);
    console.log(nameEventObj); //outputs (MouseEvent);
    chained('the body was clicked');
}

document.body.addEventListener('click', onClick);
Run Code Online (Sandbox Code Playgroud)

即使我声明事件obj要传递给onClick函数,因为namedEventObj它只能用于onClick但不能用于chained...我得到了这个,这对我来说很有意义......但绝对不是函数event可用的变量chained.

任何人都知道它为什么会这样?

我唯一能想到的是事件实际上是在window.event事件调度和事件发生时使它自己可用......但这意味着任何元素如果在事件发生的同时被调用就可以获得该事件信息触发?

我使用的是Chrome 11.0.x.

javascript inheritance scope event-handling javascript-events

26
推荐指数
1
解决办法
1万
查看次数

用于处理Tab键按下的JavaScript

众所周知,当我们点击TAB键盘上的键时,它允许我们浏览当前打开的网页上的所有活动的href链接.是否可以通过JavaScript读取这些网址?

例:

function checkTabPress(key_val) {
    if (event.keyCode == 9) {
        // Here read the active selected link.
    }
}
Run Code Online (Sandbox Code Playgroud)

javascript

19
推荐指数
2
解决办法
9万
查看次数