jQuery bind求助

奇度中国 2011-08-20 10:24:37
用bind方法绑定click事件如下
$("#add").bind("click",function(){
alert('xxx');
});


在之后有没有一种方法得到
这个函数体?
function(){
alert('xxx');
}


场景:在做灰色按钮时,如果按钮置为不可用,则把click事件函数保存到缓存中,并且解绑,当按钮可用时,重新绑定click事件。

各位达人,求救啊!~
...全文
126 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
奇度中国 2011-08-20
  • 打赏
  • 举报
回复
得到的是
funcion(){
[native code]
}
如果不unbind,再绑定一次这个,则执行两次,如果解绑,再绑定,则一次都不执行。
所以我还是觉得这个[native code]有做相应的处理
[Quote=引用 17 楼 zxy900213 的回复:]

var a = document.getElementById("add").click;呢?jquery的是经过处理的,用javascript的可以不?
[/Quote]
ZXY900213 2011-08-20
  • 打赏
  • 举报
回复
var a = document.getElementById("add").click;呢?jquery的是经过处理的,用javascript的可以不?
奇度中国 2011-08-20
  • 打赏
  • 举报
回复
用 var a = $("#add").click 获取的内容并不正确,也不能重新bind这个函数,所以这才是最头痛的
[Quote=引用 13 楼 zxy900213 的回复:]

引用 12 楼 qiducn 的回复:

我还是没有表达清楚我的意思,意思是在一个不知道的地方对 $("#add").bind("click",function(){alert("xxx")});,现在在某处用$("#add").click();是可以执行的,但是我需要(并且不知道)这个函数体,我能通过$("#add").什么方法得到么?
引用 10 楼 zxy900213 的回复:

……
[/Quote]
奇度中国 2011-08-20
  • 打赏
  • 举报
回复
用 var a = $("#add").click 获取的内容并不正确,也不能重新bind这个函数
奇度中国 2011-08-20
  • 打赏
  • 举报
回复
前提是,我并不知道a是什么东西,别人传来的一个dom对象,他进行了绑定,并且对我来说是透明的,我需要用一种方法去获取它绑定的东西
[Quote=引用 12 楼 qiducn 的回复:]

我还是没有表达清楚我的意思,意思是在一个不知道的地方对 $("#add").bind("click",function(){alert("xxx")});,现在在某处用$("#add").click();是可以执行的,但是我需要(并且不知道)这个函数体,我能通过$("#add").什么方法得到么?
引用 10 楼 zxy900213 的回复:

JScript code
<script ……
[/Quote]
ZXY900213 2011-08-20
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 qiducn 的回复:]

我还是没有表达清楚我的意思,意思是在一个不知道的地方对 $("#add").bind("click",function(){alert("xxx")});,现在在某处用$("#add").click();是可以执行的,但是我需要(并且不知道)这个函数体,我能通过$("#add").什么方法得到么?
引用 10 楼 zxy900213 的回复:

JScript code
<script ……
[/Quote]

var a = $("#add").click;//这样子试试
奇度中国 2011-08-20
  • 打赏
  • 举报
回复
我还是没有表达清楚我的意思,意思是在一个不知道的地方对 $("#add").bind("click",function(){alert("xxx")});,现在在某处用$("#add").click();是可以执行的,但是我需要(并且不知道)这个函数体,我能通过$("#add").什么方法得到么?
[Quote=引用 10 楼 zxy900213 的回复:]

JScript code
<script type="text/javascript">
var a = function(){alert("xxx");};

// 如果按钮可用,绑定
$("#add").bind("click",a);
// 如果按钮不可用,解绑
$("#add").unbind("click");
// 解绑之后,函数a并不会随着你解绑而消失……
[/Quote]
奇度中国 2011-08-20
  • 打赏
  • 举报
回复
这个函数体,因为这个函数在之前已经绑定上了,并且不知道内容,有没有办法获取它的内容?
[Quote=引用 6 楼 mubeibei 的回复:]

var a = function(){ alert('xxx');};

alert(a)//弹出一下就知道内容了。。。
[/Quote]
ZXY900213 2011-08-20
  • 打赏
  • 举报
回复
<script type="text/javascript">
var a = function(){alert("xxx");};

// 如果按钮可用,绑定
$("#add").bind("click",a);
// 如果按钮不可用,解绑
$("#add").unbind("click");
// 解绑之后,函数a并不会随着你解绑而消失啊,他还在的啊,你还可以再次绑定。

// 假如按钮又可用了,还是可以绑定回去的
$("#add").bind("click",a);
</script>
奇度中国 2011-08-20
  • 打赏
  • 举报
回复
如果按钮置为不可用,则把click事件函数保存到缓存中,并且解绑,当按钮可用时,重新绑定click事件。[Quote=引用 8 楼 zxy900213 的回复:]

引用 5 楼 qiducn 的回复:

在做公共函数时,就是为了知道 var a = function(){ alert('xxx');};这个函数体,因为这个函数在之前已经绑定上了,并且不知道内容,有没有办法获取它的内容?
用 var a = $("#add").click 获取的内容并不正确,也不能重新bind这个函数
引用 2 楼 zxy900213 的回复:

JScript……
[/Quote]
ZXY900213 2011-08-20
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 qiducn 的回复:]

在做公共函数时,就是为了知道 var a = function(){ alert('xxx');};这个函数体,因为这个函数在之前已经绑定上了,并且不知道内容,有没有办法获取它的内容?
用 var a = $("#add").click 获取的内容并不正确,也不能重新bind这个函数
引用 2 楼 zxy900213 的回复:

JScript code
var a = functio……
[/Quote]

被你说的有点晕,你要获取函数体的内容干吗??
孟子E章 2011-08-20
  • 打赏
  • 举报
回复
disabled掉的按钮本来就无法点击的啊
MuBeiBei 2011-08-20
  • 打赏
  • 举报
回复
var a = function(){ alert('xxx');};

alert(a)//弹出一下就知道内容了。。。
奇度中国 2011-08-20
  • 打赏
  • 举报
回复
在做公共函数时,就是为了知道 var a = function(){ alert('xxx');};这个函数体,因为这个函数在之前已经绑定上了,并且不知道内容,有没有办法获取它的内容?
用 var a = $("#add").click 获取的内容并不正确,也不能重新bind这个函数
[Quote=引用 2 楼 zxy900213 的回复:]

JScript code
var a = function(){ alert('xxx');};

// 绑定
$("#add").bind("click",a);

// 解除绑定
$("#add").bind("click");
[/Quote]
chchawen 2011-08-20
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 chchawen 的回复:]

监听按钮状态变换事件
function addChange(){
if($("#add").attr("disabled")=="disabled"){
$("#add").unbind("click");
}else{
$("#add").bind("click" ,function(){
……
[/Quote]
else应该bind,没注意
chchawen 2011-08-20
  • 打赏
  • 举报
回复
监听按钮状态变换事件
function addChange(){
if($("#add").attr("disabled")=="disabled"){
$("#add").unbind("click");
}else{
$("#add").unbind("click" ,function(){
alert('xxx');
});
}
}
ZXY900213 2011-08-20
  • 打赏
  • 举报
回复
var a = function(){ alert('xxx');};

// 绑定
$("#add").bind("click",a);

// 解除绑定
$("#add").bind("click");
wz_sishuiwuhen 2011-08-20
  • 打赏
  • 举报
回复
不太懂,给你顶一下,我也想知道结果
奇度中国 2011-08-20
  • 打赏
  • 举报
回复

var events=$("#add").data("events");//jquery的私有扩展对象events
var fucs=events["click"];
var fun=funcs[0].handler;//这样就能得到楼主想要的效果,顶!

结贴 ^_^
[Quote=引用 20 楼 sencha_android 的回复:]

楼主有时间的话可以看一下http://blog.csdn.net/sencha_android/article/details/6699400这是我转的一篇关于jquery的事件处理的文章。
其实每个jquery对象都有一个私有扩展对象events,每个事件对应该对象的一个属性,而该属性是个数组,当添加一个事件处理函数是就像events对象的相应属性的数组中压入一个时间处理函数。
所以楼主可……
[/Quote]
最后一个菜鸟 2011-08-20
  • 打赏
  • 举报
回复
楼主有时间的话可以看一下http://blog.csdn.net/sencha_android/article/details/6699400这是我转的一篇关于jquery的事件处理的文章。
其实每个jquery对象都有一个私有扩展对象events,每个事件对应该对象的一个属性,而该属性是个数组,当添加一个事件处理函数是就像events对象的相应属性的数组中压入一个时间处理函数。
所以楼主可以这样做

var events=$("#add").data("events");//jquery的私有扩展对象events
var fucs=events["click"];

这样fucs就是该对象所有click的处理函数,然后遍历这个就能得到楼主所要的结果
加载更多回复(1)

87,996

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧