视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
不同Jquery版本引发的问题解决_javascript技巧
2020-11-27 21:14:26 责编:小采
文档


这是最近三个月写得最完美的作品了,用JS实现了一个拖拽排序,效果图如下:

一开始进入项目有了这样的拖拽实现想法,一点头绪没有,请教师兄说这样实现不可能。当时觉得很遗憾,打算用传统的方式去实现。正构思传统的方式,感觉时间充裕,就回到了拖拽的想法上来。终于实现了。其实我不是炫耀这个(当然,感兴趣的话,可以QQ9070874联系我,我会整理Demo上传到资源中心),我想说的是下文。
就在我实现的同时,师姐帮另一个伙伴写了一个传统方案的Demo,他进行的是修改的排序。在她机器上演示的时候,当时就觉得很震撼,在她的鼠标滑动下,走马观花了一遍代码,看着长长的链式JS,顿生仰慕。当时就想,等项目结了,好好研究她这个。

2个月后,等来了,闲暇。缘于对JS的生疏,很吃力的勉强看懂了代码,运行的时候,飞来了一只虫子。移动的时候,一直提示无选择项。
代码如下:
for(var j = 0; j < div_count; j++){
if(($("#eva_div_all").children().eq(j).children().children().eq(0).attr('checked'))=='checked'){
var valid_checked = $("#eva_div_all").children().eq(j).children().children().eq(0).attr('id');
if(valid_checked==checked_name){alert(alert_des);return;}
/* 对调 */
var temp = $("#eva_div_all").children().eq(j).attr('id');
var temp_html = $("#"+temp).html();
var before_temp = $("#eva_div_all").children().eq(j+num).attr('id');
var before_temp_html = $("#"+before_temp).html();
$("#"+temp).html('');
$("#"+before_temp).html('');
$("#"+temp).html(before_temp_html);
$("#"+before_temp).html(temp_html);
checked = 'true';
new_order();
}
}
if(checked=='false'){
alert('无选择项!!');
}

俨然飞虫进入了眼睛,不断的揉啊揉,就是出不来,一天就是这么过的。
无奈了,解铃还需系铃人,她来了,调试了许久许久,还不是不行,后来对比她本地的代码,毫无差异,她本地也运行正常。后来我们就达成了共识浏览器问题。
代码如下:
$("#eva_div_all").children().eq(j).children().children().eq(0).attr('checked'))=='checked')

浏览器对ehecked属性支持不一样。

她是firefox 23, 我的是16.0.1。很开心,终算找到问题的症结了,此事算是告一段落。

一个星期后的今天,用同样的浏览器访问服务器上的资源,又不存在这个问题了。接着研究吧。
还好,不知道哪来的灵感,把原引入的jquery.js换成jquery-1.7.2.min.js,问题终于再次被解决。
不知道还会不会在被推翻,呵呵~~

下载本文
显示全文
专题