jquery如何绑定一个已有的方法并传递参数

2024-10-30 15:37:32
推荐回答(2个)
回答1:

用闭包+匿名函数吧
$("button").bind("click",function(e){
//这里通过对e的处理得到你的待传参数值
para = e.target.foo
abc(para)
})
--
可能我没理解你的意思
按钮是什么?是组件的一部分还是随便写在html里的?
如果是一部分那么你可以用this指向组件对应的方法调用吧
如果不是的话,你也可以在匿名函数里先找到组件的引用,再调相应的方法

本质上jquery.bind是把前后两个函数的参数一一对应地进行传递赋值的……
---
晕,js支持反射的,就是说你可以通过方法名的字符串调用该方法,例如
var a;
a.b = function(){/**/}
a.b() //传统的调用
a["b"]()//反射调用
所以在组件里可以写个属性(比如propFuncname),返回那个方法的名字的字符串,如"abc"
然后在匿名函数里找到组件的引用,通过上述属性(propFuncname)得到方法字符串,再用反射调用之。

这样可以保证,通过对公共属性propFuncname的调用得到不同的对应的方法。

回答2:

实现方法:

        可以将已存在的方法放在元素绑定的触发事件里,(如:点击、鼠标滑过等事件的闭包函数内)如下:

$("#id").bind("click",function(){
    //这里调用已存在的方法,并按照已存在方法的参数传值
});

例如:

function show(num){
    alert(num);
}
$("#id").bind("click",function(){//绑定点击事件(可以绑定其他事件)
    show(1);
});