Nic*_*uin 4 javascript jquery event-handling
我有一个JavaScript函数,可以直接调用,作为jQuery事件的回调.
在后一种情况下,jQuery Event对象将作为参数传递.当我直接调用函数时,我还提供了一个参数(不同类型,但仍然是一个Object).
因此,我需要能够检查(在函数体内)如何调用函数,以便知道它正在处理什么类型的参数.
有一个简单的方法吗?
T.J*_*der 11
接受参数,然后看看它是否instanceof jQuery.Event:
function yourFunction(e) {
if (e instanceof jQuery.Event) {
// ...it was an event handler call
}
}
Run Code Online (Sandbox Code Playgroud)
不过,我建议避免这种事情.相反,我建议让事件处理程序调用目标函数(而不是使用目标函数作为实际的事件处理程序),如果你需要根据它的调用方式区分行为.
从您对该问题的评论:
我简单的尝试是:当直接调用函数时,我在第一个位置使用空值,在第二个位置使用有用的参数.
在这种情况下,它更容易:
function yourFunction(e) {
if (e) {
// ...it was an event handler call -- or at least,
// a non-falsey argument of some kind was passed in
}
}
Run Code Online (Sandbox Code Playgroud)
你甚至不必传入null函数,只需要不带参数调用它.当你这样做,e将是undefined,这是假的.(事件对象jQuery传递处理程序永远不会是假的.)
| 归档时间: |
|
| 查看次数: |
3053 次 |
| 最近记录: |