论坛首页 Web前端技术论坛

第一次遇到javascript多实例冲突问题,提供部分解决方案

浏览 10794 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-11-06  
yeah_nihao 写道
其实这个问题应该还是好解决的吧!你这个有个规律,就是每个脚本代码段都是大控件div的子元素,你只需要通过每个脚本段代码去获取它的父元素,然后再以父元素为根结点处理后续逻辑就可以了,至于要不要id都无所谓了。就好像相对引用与绝对引用,基于id相当于绝对引用,每个页就一个,你这个地方用相对引用就好了。


虽然js代码是写在控件里面的,但是js本身是被浏览器解析到外面的,你说的“你只需要通过每个脚本段代码去获取它的父元素”怎么实现?
0 请登录后投票
   发表时间:2011-11-06  
很奇怪为啥你用的js框架连这个基本的功能都没捏?
0 请登录后投票
   发表时间:2011-11-07  
不知道的的div的id后台有用到没

我这里使用的是 <div class="newsbox" id="<portlet:namespace/>div">
js调用
$("#<portlet:namespace/>div").portalui_showLine({})
0 请登录后投票
   发表时间:2011-11-07  
用this可以吗
0 请登录后投票
   发表时间:2011-11-07  
yeah_nihao 写道
其实这个问题应该还是好解决的吧!你这个有个规律,就是每个脚本代码段都是大控件div的子元素,你只需要通过每个脚本段代码去获取它的父元素,然后再以父元素为根结点处理后续逻辑就可以了,至于要不要id都无所谓了。就好像相对引用与绝对引用,基于id相当于绝对引用,每个页就一个,你这个地方用相对引用就好了。

这个法子最简单了
0 请登录后投票
   发表时间:2011-11-07  
如果位置可知的话可先byId get到一堆的控件,然后再[0],[1]。。。这样去拿。
(笨办法)
0 请登录后投票
   发表时间:2011-11-07  
修改控件吧,元素id使用随机数或者其他方式来避免冲突。

而且,按照w3c标准,一个页面的id应该是唯一的。
0 请登录后投票
   发表时间:2011-11-08  
你的div上的ID是怎么获取到的? 后台代码输出还是前台使用类似EL表达式获取的?能否将 显示div id的方法 用到后面的script脚本块中?
0 请登录后投票
   发表时间:2011-11-09  
你可以在页面的各个控件加入页面唯一标示,然后将页面唯一标示传到后天,后天生成的ID将原ID+唯一标识(如:id_标识别)。如果需要获取原先唯一标识,只需要用相关js方法取得即可。这个我原先做项目碰到过。
0 请登录后投票
   发表时间:2011-11-14   最后修改:2011-11-14
有个傻方法很简单 就是你那个组件自己维护自己的对象个数 就是id是自己生成的
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics