簡體   English   中英

點擊時調用自定義函數(javascript / jquery)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM