2012-09-05 183 views
72

由於使用了插件,我無法像往常一樣將「onClick」屬性添加到HTML表單輸入。 一個插件正在處理我網站中的表單部分,並且它沒有給出自動執行此操作的選項。使用jQuery動態添加onClick事件

基本上我有這個輸入:

<input type="text" id="bfCaptchaEntry" name="bfCaptchaEntry" style=""> 

我想一個onClick添加到它與jQuery的onload它是這樣的:

<input onClick="myfunction()" type="text" id="bfCaptchaEntry" name="bfCaptchaEntry" style=""> 

我如何去這樣做呢?

我知道這可能不是標準做法,但似乎是在我的情況下最簡單的選擇。

我是jQuery的新手,所以任何幫助都非常感謝。

回答

137

可以使用click事件並調用你的函數或移動您的邏輯到處理程序:

$("#bfCaptchaEntry").click(function(){ myFunction(); }); 

可以使用click事件並設置功能的處理程序:

$("#bfCaptchaEntry").click(myFunction); 

.click()

將事件處理程序綁定到「click」JavaScript事件,或者在元素上觸發該事件。

http://api.jquery.com/click/


您可以使用綁定的on事件"click"和調用函數或移動您的邏輯到處理程序:

$("#bfCaptchaEntry").on("click", function(){ myFunction(); }); 

您可以使用綁定到on事件"click"並設置您的功能爲處理程序:

$("#bfCaptchaEntry").on("click", myFunction); 

。on()

將一個或多個事件的事件處理函數附加到所選元素的 。

http://api.jquery.com/on/

+2

+1的各種 – nickaknudson

+0

簡單,易於理解。正是我想要的。 另一個問題:什麼是使用jQuery整合背景顏色變化的最簡單方法?或者更好使用'style.backgroundColor =「white」;'在功能部分? –

+2

'$(「body」).css(「backgroundcolor」,「white」);' - http://api.jquery.com/css/#css2 – hunter

15

試試下面的方法,

$('#bfCaptchaEntry').on('click', myfunction); 

情況下或者在jQuery是不是一個絕對的necessaity再試試下面,

document.getElementById('bfCaptchaEntry').onclick = myfunction; 

然而上述方法具有一些缺點,因爲它的onclick設置爲一個屬性,而比登記爲處理者...

閱讀更多關於此職位https://stackoverflow.com/a/6348597/297641

7
$("#bfCaptchaEntry").click(function(){ 
    myFunction(); 
}); 
9

試試這個方法,如果你知道你的目標客戶的名字(這並不重要,這是按鈕或文本框)

$('#ButtonName').removeAttr('onclick'); 
$('#ButtonName').attr('onClick', 'FunctionName(this);'); 

,如果你想加試這個的人使用JQuery將onClick事件添加到服務器對象中

$('#' + '<%= ButtonName.ClientID %>').removeAttr('onclick'); 
$('#' + '<%= ButtonName.ClientID %>').attr('onClick', 'FunctionName(this);'); 
0

或者你可以使用一個箭頭的功能來定義它:

$(document).ready(() => { 
    $('#bfCaptchaEntry').click(()=>{ 

    }); 
}); 

爲了更好的瀏覽器支持:

$(document).ready(function() { 
    $('#bfCaptchaEntry').click(()=>{ 

    }); 
}); 
+0

我不明白這是如何提供任何新的接受回答已經建議'.click()'方法。在我看來,是否使用箭頭函數或常規函數是一個與所提問題無關的討論。爲了更好的瀏覽器支持,你可能應該刪除兩個箭頭函數,而不僅僅是第一個。 – agrm

+0

因爲是另一種使用jQuery的方式 –