注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

cooljun的博客

>>静静的心里 ,都有一道最美丽的风景<<

 
 
 

日志

 
 

ie7下 jquery attr(‘onclick’)无反应问题  

2013-07-26 17:25:43|  分类: javascript |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

一个DOM对象可通过.obj.onclick = function(){}这种形式绑定一个事件,同样jquery里面可以通过bind方法绑定事件,实例代码如下:

$(this).find(“IMG[alt='向上']“).bind(“click”, function(){
listItemUp(i, o);
});
$(this).find(“IMG[alt='向下']“).bind(“click”, function(){
listItemDown(i, o);
});
$(this).find(“IMG[alt=' 编辑']“).bind(“click”, function(){
editBigNewsListItem(i, o);
});
$(this).find(“IMG[alt='删除']“).bind(“click”, function(){
delBigNewsListItem(i, o);
});

但 是有一种情况是一个DOM对象在之前已经用onclick 绑定了一个事件,但是参数发生改变,这个时候需要再次用jquery绑定一个不同的事件.这个时候如果不销毁onclick 绑定的事件,则点击的时候会触发两个事件.这种不希望看到的情况在IE以及Firefox下表现并不相同.所以应该销毁之前的onclick 事件.销毁的方法如下:

$(this).find(“IMG”).attr(“onclick”, “”);

这种方法实际上 是在DOM对象上加上一个onclick属性,源代码里面可以看到.这种办法在FIREFOX下面很好用,在IE下会导致 jquery绑定的click事件无效,因为这个attr(“onclick”, “”)造成点击没有任何反应.注意以上是目前知道的最好的办法,不要企图用removeAttr(“onclick”); 方法取销毁,这是没有用的.当然jQuery的unbind也是不好使的.

最后的解决办法通过JavaScript是让DOM节点的代码重新生成,这样空值的onclick属性将会被去掉,接着jQuery的click事 件开始起作用了.

  评论这张
 
阅读(109)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018