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

已有的方法如:functionabc(aaa){alert(aaa);}点击一个按钮执行这个方法,jquery写法为:$("button").bind("click",a... 已有的方法如:
function abc(aaa){
alert(aaa);
}
点击一个按钮执行这个方法,jquery写法为:
$("button").bind("click",abc);不知如何把参数传过去?
jquery例子中有:$("button").bind("click",{foo:"123"},abc);这种写法,通过event.target.foo获取参数值,但已有的方法我不能改,请问如何传递参数?
但我是写成了组件,方法名和参数都是先传到组件中,所以不能直接写abc(para),组件调用代码如下:
$.("body").组件名([{handler:abc,para:"afdsfds"},{handler:abcd,para:"1234"}]);
方法不一定都是abc
按钮是在组件中创建的,并把点击调用的方法绑定上,如上会创建两个按钮,各自调用不同的方法,并传递不同的参数
如果在匿名函数里先找到组件的引用,再调相应的方法,怎么调呢?我不能写死abc(para),不知怎么写动态传入的方法名
能给写出来几行示例吗?
展开
 我来答
匿名用户
2008-12-02
展开全部
用闭包+匿名函数吧
$("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的调用得到不同的对应的方法。
Baby_原來
2015-08-17 · TA获得超过3402个赞
知道大有可为答主
回答量:1535
采纳率:94%
帮助的人:493万
展开全部

实现方法:

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

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

例如:

function show(num){
    alert(num);
}
$("#id").bind("click",function(){//绑定点击事件(可以绑定其他事件)
    show(1);
});
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式