如何将参数传递给事件处理程序?

2024-01-16

我有一个函数对象,我想使用 jquery 在单击时向其传递参数,但它不起作用。

<script>
var item=232;
$(function(){
    $('div').click(fn_clik('Mike'))
})

var fn_clik = function(name){
        alert('Name is:' + name + ' item is:' + item)
}
</script>

我不明白其背后的概念。谁能解释一下我哪里出错了?


让您正在调用的函数在闭包中返回一个具有名称的函数,并通过参数传递:

$('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'没有返回值;

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将参数传递给事件处理程序? 的相关文章

随机推荐