jQuery技术:如何将参数传递给事件处理程序?

我有一个函数对象,我想使用jquery在click上传递一个参数,但它不起作用。

 var item=232; $(function(){ $('div').click(fn_clik('Mike')) }) var fn_clik = function(name){ alert('Name is:' + name + ' item is:' + item) }  

我不明白它背后的概念。 任何人都可以解释我哪里出错了?

    让你正在调用的函数返回一个函数,该函数的名称由参数传递,在一个闭包中:

     $('div').click( fn_clik('Mike') ); var fn_clik = function(name){ return function() { alert('Name is:' + name + ' item is:' + item); } } 

    或者使用匿名函数传递包装使用正确参数调用的原始函数:

     $('div').click(function () { fn_clik('Mike') }); 

    快速说明,在原始代码中,您调用函数’fn_clik’而不是将其作为对象传递。 所以你的代码正在评估:

     $('div').click( undefined ); 

    这是因为你原来的’fn_clik’没有返回值;

    如果你写“func(…)”你调用你的函数,你必须juste写函数名称。

    没有争论

    像这样 :

     $('div').click(fn_clik); 

    随着争论

    如果你想得到参数,请使用这样的匿名函数:

     $('div').click(function () { fn_clik('Mike') }); 

    看到这个事件变量。

    变量返回元素节点,以及事件返回单击事件。

     $("body").click(function (event) { if (this == $("body")[0]) { alert("self"); } }); 

    演示

    这是我常常做的,

      

    谢谢。

    您正在调用函数并在绑定时使用返回值(未定义),而不是获取对事件可以调用的函数的引用。

    将函数调用包装在函数表达式中,以便获得对它的引用:

     $('div').click(function() { fn_clik('Mike'); }); 

    您还可以使用proxy方法创建一个绑定了参数的函数:

    需要了解更多jQuery教程分享如何将参数传递给事件处理程序?,都可以关注jQuery技术分享栏目—计算机技术网(www.ctvol.com)!

     $('div').click($.proxy(fn_clik, this, 'Mike')); 

     var item = 232; $(function(){ $('div').click(function(e){fn_click("Mike");}); }) var fn_clik = function(name){ alert('Name is:' + name + ' item is:' + item) } 

      以上就是jQuery教程分享如何将参数传递给事件处理程序?相关内容,想了解更多jQuery开发(异常处理)及jQuery教程关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/jquerytutorial/981297.html

      (0)
      上一篇 2021年12月12日
      下一篇 2021年12月12日

      精彩推荐