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),不知怎么写动态传入的方法名
能给写出来几行示例吗? 展开
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),不知怎么写动态传入的方法名
能给写出来几行示例吗? 展开
2个回答
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的调用得到不同的对应的方法。
$("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的调用得到不同的对应的方法。
展开全部
实现方法:
可以将已存在的方法放在元素绑定的触发事件里,(如:点击、鼠标滑过等事件的闭包函数内)如下:
$("#id").bind("click",function(){
//这里调用已存在的方法,并按照已存在方法的参数传值
});
例如:
function show(num){
alert(num);
}
$("#id").bind("click",function(){//绑定点击事件(可以绑定其他事件)
show(1);
});
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询