将参数传递给调用的事件处理程序,即 element.onchange(); javascript
我有一个这样的函数:
function doSomething()
{
// do something with select element
}
document.getElementById("selectel").onchange = doSomething;
// Call onchange event
document.getElementById("selectel").onchange();
现在,我认识到我可以直接调用该函数并传递参数。但我想知道是否可以在调用 onchange() 事件处理程序后将参数传递给它。我尝试过
document.getElementById("selectel").onchange("hello");
,但这没有用。
感谢您的帮助。
I have a function like this:
function doSomething()
{
// do something with select element
}
document.getElementById("selectel").onchange = doSomething;
// Call onchange event
document.getElementById("selectel").onchange();
Now, I recognize that I could call the function directly and pass a parameter. But I'd like to know if it's possible to pass a parameter to the onchange() event handler after it's evoked. I tried
document.getElementById("selectel").onchange("hello");
, but this didn't work.
Thank you for your help.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您需要将参数绑定到您的函数。我将从 Ext-JS 复制粘贴一个函数,让您可以做到这一点。 警告:不适合初学者
您可以像调用处理程序时一样使用它
,附加参数将附加到事件处理程序(事件对象)传递的参数中。
这个函数有很多内容,所以请随时提出任何其他问题。
这是一个 jsfiddle,可以看到它的实际效果 http://jsfiddle.net/yBhG6/
You need to bind a parameter to your function. I'm going to copy paste a function from Ext-JS that lets you do just that. Warning: not for beginners
You can use it like
When your handler is called, additional parameters are appended to the arguments passed by the event handler (the event object).
There's a lot of meat in this function, so feel free to ask any additional questions.
Here's a jsfiddle to see it in action http://jsfiddle.net/yBhG6/
声明一个匿名函数:
Declare an anonymous function:
您可以使用 apply() 方法来传递参数。
You could use the apply() method which lets you pass arguments.
我可以看到解决这个问题的两种方法。
一种是通过将
select
传递为this
来直接调用回调:第二种与 Igor 类似,但需要其他变量的帮助:
I can see two approach to this question.
One is to call Your callback directly by passing
select
asthis
:Second is similar to Igor's, but with help of other variables: