javascript - 单击时调用自定义函数 (javascript/jquery)

标签 javascript jquery click

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

如果我使用它,它会起作用:

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

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

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

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

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

非常感谢

最佳答案

为此,您需要从 alertOnClick 返回一个函数,如下所示:

function alertOnClick(objectToClick) {
  return function() {
    alert("Clicked on " + objectToClick)
  }
}

这将允许您执行以下操作:

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

这是一个工作代码示例,可以看到它的实际效果:

function alertOnClick(objectToClick) {
  return function() {
    alert("Clicked on " + objectToClick)
  }
}

$("#objectId").click(alertOnClick("objectId"))
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js">
</script>
<button id="objectId">Object Id</button>

关于javascript - 单击时调用自定义函数 (javascript/jquery),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51996489/

相关文章:

javascript - 如何验证两个单独的 Mongoose 文档中是否存在电子邮件?

jquery - 父元素的 CSS Sprite 悬停状态

javascript - jQuery 等待 Ajax 调用获取数据后再显示

jquery - 打开一个新的弹出窗口并向其发布数据

java - android-即使释放后按钮如何保留在 "clicked appearance"中?

javascript - 通过将跨度附加到主体来查找宽度

javascript - myFunction 未定义

javascript - 进入视口(viewport)时仅自动滚动嵌入窗口一次。无法向上滚动

asp.net - 简单的 ajax 调用不适用于按钮单击

javascript - JQuery 条件点击事件