因为公司需要,花了2天时间学习了一下jquery的基础,就开始工作了。昨天工作的时候碰到了jquery的问题,部分代码如下:
$("#feedDiv div").live("click",unfold);
//unfold方法
function unfold(){
$(this).html("").hide();
$(this).html(glob_templateContentJson[$(this).attr("id")]);
$(this).show("slow");
$(this).die("click",unfold); //解除click事件
}
结果发现$(this).die("click",unfold); 竟然没作用,很奇怪。然后把代码换成下面这样竟然问题就解决了:
function unfold(){
$(this).html("").hide();
$(this).html(glob_templateContentJson[$(this).attr("id")]);
$(this).show("slow");
$("#"+$(this).attr("id")).die("click",unfold); //解除click事件
}
通过ID获取到对象就竟然die就成功了。而通过this竟然不行。。
虽然问题解决了,但是不明白使用die,为什么 $(this) 就不行了呢。。
$("#feedDiv div").live("click",unfold);
//unfold方法
function unfold(){
$(this).html("").hide();
$(this).html(glob_templateContentJson[$(this).attr("id")]);
$(this).show("slow");
$(this).die("click",unfold); //解除click事件
}
结果发现$(this).die("click",unfold); 竟然没作用,很奇怪。然后把代码换成下面这样竟然问题就解决了:
function unfold(){
$(this).html("").hide();
$(this).html(glob_templateContentJson[$(this).attr("id")]);
$(this).show("slow");
$("#"+$(this).attr("id")).die("click",unfold); //解除click事件
}
通过ID获取到对象就竟然die就成功了。而通过this竟然不行。。
虽然问题解决了,但是不明白使用die,为什么 $(this) 就不行了呢。。
本文探讨了一个关于jQuery中click事件的特殊案例。作者在实际工作中遇到了使用$.die无法正确解除事件绑定的问题,并给出了两种不同的解决方案及对比分析。

862

被折叠的 条评论
为什么被折叠?



