年后,把项目的jquery升级到1.42版本了,一直在想怎么优化原有的js。 因为一直在用FF调试,没留意IE。 今天用IE 试了下,居然发现了一个严重的bug。 IE 下 $.ajax 会导致内存泄露。一开始还不知道是 jquery的原因,到处找代码原因。最后在 小超 同志下的测试,发现了原来是 jquery 版本问题。 真折腾自己啊… 降回1.32 版本就不存在问题了。
在找内存泄露的过程中,找到了2个小软件 Drip-0.5 和 IEJSLeaksDetector 专门对IE内存泄露检测的2个工具。
今天在项目里面,尝试使用 jQuery1.4 。 换了之后,感觉整个页面的交互是轻了,但是随之而来的是bug。 跟踪了一下,原来是 .change() 在IE下有一个这样的问题。 不知道是否jQuery 的bug了。代码如下:
<select name="" id="test">
<option value="1">1</option>
<option value="2" selected="selected">2</option>
<option value="3">3</option>
</select>
<select name="" id="test2">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<script type="text/javascript">
$(function(){
$("#test,#test2").change(function(){
alert($(this).val());
})
})
</script>
#test 下拉菜单默认绑定了2,在FF中是fire change 是鼠标点击option后,而在IE下是鼠标点了select就直接fire了。 郁闷…
今天无聊,逛了下Jquery 插件超市,看到个 Tagger插件。 现在我们写Blog,填写 Tag的时候,多数都是用分号逗号方式隔开。而这个插件使用了input 数组的方式。原理使用相同的name:<input type="text" name="test[]"/>
接收的时候,会以数组的形式接收。 看看具体的 Demo
最近在研究 greenmonkey ,发现 userscripts.org 里面提供了很多网站的一些 script。
回归正题,jquery 如何判断DOM 是否存在..
if($("#test").length>0) 或者 if($("#test").size()>0)

reply