使用jQuery动态添加onClick事件

Cla*_*ado 112 html javascript jquery

由于使用了插件,我无法像往常一样将"onClick"属性添加到HTML表单输入中.插件正在处理我站点中的表单部分,并且它不提供自动执行此操作的选项.

基本上我有这个输入:

<input type="text" id="bfCaptchaEntry" name="bfCaptchaEntry" style="">
Run Code Online (Sandbox Code Playgroud)

我想用jQuery onload添加一个onClick,它就像这样:

<input onClick="myfunction()" type="text" id="bfCaptchaEntry" name="bfCaptchaEntry" style="">
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?

我知道这可能不是标准做法,但在我的情况下似乎是最简单的选择.

我是jQuery的新手所以非常感谢任何帮助.

hun*_*ter 187

您可以使用该click事件并调用您的函数或将您的逻辑移动到处理程序中:

$("#bfCaptchaEntry").click(function(){ myFunction(); });
Run Code Online (Sandbox Code Playgroud)

您可以使用该click事件并将您的函数设置为处理程序:

$("#bfCaptchaEntry").click(myFunction);
Run Code Online (Sandbox Code Playgroud)

.点击()

将事件处理程序绑定到"单击"JavaScript事件,或在元素上触发该事件.

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


您可以使用on绑定的事件"click"并调用您的函数或将您的逻辑移动到处理程序中:

$("#bfCaptchaEntry").on("click", function(){ myFunction(); });
Run Code Online (Sandbox Code Playgroud)

您可以使用on绑定的事件"click"并将您的函数设置为处理程序:

$("#bfCaptchaEntry").on("click", myFunction);
Run Code Online (Sandbox Code Playgroud)

.上()

将一个或多个事件的事件处理函数附加到所选元素.

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

  • `$("body").css("backgroundcolor","white");` - http://api.jquery.com/css/#css2 (2认同)

Ard*_*oli 28

如果你知道你的对象客户端名称(它不是重要的是Button或TextBox),请尝试这种方法

$('#ButtonName').removeAttr('onclick');
$('#ButtonName').attr('onClick', 'FunctionName(this);');
Run Code Online (Sandbox Code Playgroud)

如果你想使用JQuery将onClick事件添加到服务器对象,请尝试这些

$('#' + '<%= ButtonName.ClientID %>').removeAttr('onclick');
$('#' + '<%= ButtonName.ClientID %>').attr('onClick', 'FunctionName(this);');
Run Code Online (Sandbox Code Playgroud)

  • 这正是我所需要的,因为我希望能够定义一个单独的函数,并且能够在不调用它的情况下设置该函数。谢谢你迟到了4年。 (2认同)
  • 我喜欢这个答案的地方是它不调用函数而只设置 onclick (2认同)

Sel*_*gam 17

尝试以下方法,

$('#bfCaptchaEntry').on('click', myfunction);
Run Code Online (Sandbox Code Playgroud)

或者如果jQuery不是绝对必要,那么请尝试下面,

document.getElementById('bfCaptchaEntry').onclick = myfunction;
Run Code Online (Sandbox Code Playgroud)

然而,上面的方法有一些缺点,因为它设置onclick作为属性而不是注册为处理程序...

阅读这篇文章的更多内容/sf/answers/444401821/


Par*_*rma 7

$("#bfCaptchaEntry").click(function(){
    myFunction();
});
Run Code Online (Sandbox Code Playgroud)


Gab*_*Rua 7

或者您可以使用箭头函数来定义它:

$(document).ready(() => {
  $('#bfCaptchaEntry').click(()=>{
    
  });
});
Run Code Online (Sandbox Code Playgroud)

为了获得更好的浏览器支持:

$(document).ready(function() {
  $('#bfCaptchaEntry').click(function (){
    
  });
});
Run Code Online (Sandbox Code Playgroud)