首页 > 解决方案 > 单击时调用自定义函数(javascript / jquery)

问题描述

我是初学者,在调用我在 JavaScript 或 jQuery 上创建的函数时遇到问题。

如果我使用它,它可以工作:

$("#objectId").click(function(){
    alert("Clicked on objectId")
}

但是,如果我预先定义了一个函数并在 onclick 上调用它,它就不起作用

function alertOnClick(objectToClick) {
    alert("Clicked on " + objectToClick)
}
$("#objectId").click(alertOnClick("objectId"))

在这种情况下,它会在页面加载时发出警报,并且不会在点击时发出警报。

我在语法上做错了什么,为什么?

非常感谢

标签: javascriptjqueryclick

解决方案


因为您正在调用该函数alertOnClick而不是将其作为参考传递

你应该做这样的事情:

$("#objectId").click(alertOnClick)

function alertOnClick(ev) {
    alert("Clicked on " + ev.target.id);
}

当您这样做时,您在单击事件发生之前使用 as 参数$("#objectId").click(alertOnClick("objectId"))调用该alertOnClick方法。objectId您应该做的是传递方法的引用,以便在click事件发生时调用它。


推荐阅读