代码精简意味着什么?JQuery使用感悟
本博客所有文章均属原创作品,如有转载,请注明作者:biuuu,来源:http://www.biuuu.com/?p=5
今天依然是第三期的BUG修复,BUG很多,但解决也快,下午测试人员告诉我有一个JQuery的组件功能IE不兼容,但FixFox没问题,这让我有点吃惊,因为我是在FixFox下开发的,这肯定是没问题的,但IE不兼容我却没有考虑,因为我想当然的认为IE是没问题,事实上问题存在。
功能组件是我用JQuery开发的,所以我很熟悉相关代码,我认定是IE对象找不到,但经过调试发现确实找不到对象,那么FixFox为什么能找到,先来看一下代码:
<span id="id_1">
<select id="op_1">
<option value="1">1</option>
<option value="2">2</option>
</select>
</span>
当然实际的代码比这个要复杂,因为有几层,一层一层引导的,这只是个实例。
我使用的for循环获取ID,如果匹配就输出对应该的option值,使用的是jQuery的chang事件,代码相对比较长,而且不兼容IE,因此我想可能是方法存在差异,与同事讨论后决定更改获取方法,使用JQuery的查询功能匹配,果然,简单的两行代码就解决了十几行的问题,同时兼容了IE与FixFox,问题得到解决。
同样的功能,实现的方法很多,找到最有效的解决方法才是重点,因此,在今后的开发过程中,要加强对代码精简方法的认识,代码精简意味着什么,更多的对知识的了解和掌握以及丰富的实践经验。
附代码:
修改前的方法:
jQuery(document).ready(function(){
for(i=0;i<=30;i++){
var gid = "#group_"+i;
jQuery(gid).change(function(){
jQuery('option:selected', this).each(function(){
//调用方法
});
});
var fid = "#forum_"+i;
jQuery(fid).change(function(){
jQuery('option:selected', this).each(function(){
//调用方法
});
});
var sid ="#sub_"+i;
jQuery(sid).change(function(){
jQuery('option:selected', this).each(function(){
//调用方法
});
});
}
});
修改后的方法:
有页面select中增加change事件,直接调用
jQuery(document).ready(function(){
jQuery("select[id^='group_']").change(function(){
});
});
function getChangeEvent(obj){
//调用方法
}
第一层
<select id="group_1" name="group_id">
<option value="1">1</option>
<option value="2">2</option>
</select>
第二层
<select id="forum_1" name="forum_id">
<option value="1">1</option>
<option value="2">2</option>
</select>
原创文章如转载,请注明:转载自 必优博客 http://www.biuuu.com/
本文链接地址:http://www.biuuu.com/p5.html






























我要评论