【问题标题】:Parameter of a function within the eventlistener: How can I pass it?事件监听器中的函数参数:我如何传递它?
【发布时间】:2019-09-05 10:44:06
【问题描述】:

我正在尝试将参数传递给我的事件监听器中的一个函数,以便在下面的代码中完成我的学校作业。我是 JS 的新手,在这里发现 Javascript event handler with parameters,你不能只将参数传递给事件监听器的函数。但除此之外,这个线程并没有太大帮助。只是因为我并不真正了解JS并且不了解它。我该怎么做?

document.getElementById("Content_id").addEventListener("focus", focusFunction ("Content_id",event);});


function focusFunction(elID,event){
    alert(elID+":"+event.timestamp);
}

【问题讨论】:

  • 您正在立即调用该函数,您没有将其作为事件侦听器附加。

标签: javascript function parameter-passing event-listener


【解决方案1】:

document.getElementById("Content_id").addEventListener("focus", function(event) {
  focusFunction(event);
});

function focusFunction(event) {
  console.log(event.target.id + ":" + event.timeStamp); //event.target.id is more dynamic
}
<input id="Content_id" />

【讨论】:

  • 工作就像一个魅力,谢谢!问题:你的评论是什么意思?类似于:event.target.id 可以在活动期间更改??
  • 看看here。在这种情况下,您的选择器是类而不是修复 ID,但您仍然可以使用 focusFunction
【解决方案2】:

你需要将回调包装成一个函数,否则它会被直接调用:

document.getElementById("Content_id").addEventListener("focus", (event) => focusFunction("Content_id", event));

【讨论】:

    猜你喜欢
    • 2016-08-13
    • 2011-05-24
    • 1970-01-01
    • 2022-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-03
    • 1970-01-01
    相关资源
    最近更新 更多