[英]Calling custom functions on click (javascript / jquery)
我是一個初學者,在調用在JavaScript或jQuery上創建的函數時遇到問題。
如果我使用它,它的工作原理是:
$("#objectId").click(function(){
alert("Clicked on objectId")
}
但是,如果我預定義一個函數並在onclick上調用它不起作用
function alertOnClick(objectToClick) {
alert("Clicked on " + objectToClick)
}
$("#objectId").click(alertOnClick("objectId"))
在這種情況下,它會在頁面加載時發出警報,並且不會在單擊時發出警報。
我在語法上做錯了什么,為什么?
非常感謝你
因為您正在調用函數alertOnClick
而不是將其作為參考傳遞
您應該這樣做:
$("#objectId").click(alertOnClick)
function alertOnClick(ev) {
alert("Clicked on " + ev.target.id);
}
當您執行$("#objectId").click(alertOnClick("objectId"))
您將在單擊事件發生之前調用以objectId
作為參數的alertOnClick
方法。 您應該做的是傳遞方法的引用,以便在click
事件發生時調用該方法。
為此,您需要從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>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.