自定义标签在js拼html元素不起作用时的解决方案
来源:互联网 发布:usb端口重置请求失败 编辑:程序博客网 时间:2024/04/30 10:59
第一次写的时候是这样写的
pagehtml+="<j:perm code="33"><a href='javascript:void(0)' name='soft' style='display: none;float: left;margin-left: 80px;' onclick=upward("+value+","+defaulthtml.parentId+") >↑</a> <a href='javascript:void(0)' name='soft' onclick=down("+value+","+defaulthtml.parentId+") >↓</a></j:perm> ";
用 <j:perm code="33">...</j:perm>
包起来,结果在某些 插件里面,这个自定义标签并没有起作用;
当时绞尽脑汁想到的办法就是在 拼字符串的是 给他拼上 style样式:
style='display: none;float: left;margin-left: 80px;'
然后在jsp页面 写自定义标签:
<!-- 排序 --><j:perm code="33"> <script type="text/javascript" > $(document).ready(function () { $('#treeGrid').on('bindingComplete', function(event) { setTimeout(function(){ var softElems=document.getElementsByName('soft'); for (var int = 0; int < softElems.length; int++) { document.getElementsByName('soft')[int].style.display='block'; } }, 100); }); }); </script></j:perm>
这样,看着是解决了。但是当操作 插件的时候; 样式基本失效。 因为 在插件里面做操作,会有js 事件。js里面 自动的把我 在
pagehtml+="<j:perm code="33"><a href='javascript:void(0)' name='soft' style='display: none;float: left;margin-left: 80px;' onclick=upward("+value+","+defaulthtml.parentId+") >↑</a> <a href='javascript:void(0)' name='soft' onclick=down("+value+","+defaulthtml.parentId+") >↓</a></j:perm> ";
这里面写死的样式还原,这样页面的自定义标签也不会再去验证。就这样以上的解决方案已经失败了!
解决方案来了
第一种:
把以上的js代码 全部写在jsp页面;因为自定义标签就会在 js里面起作用了。因为自定义表情其实也就相当于小脚本! 只不过用标签话封装了:
<j:perm code="33"> pagehtml+="<a href='javascript:void(0)' name='soft' onclick=upward("+value+","+defaulthtml.parentId+") >↑</a> <a href='javascript:void(0)' name='soft' onclick=down("+value+","+defaulthtml.parentId+") >↓</a> ";</j:perm>
这样我只要不加在这段代码里面拼写的界面元素自然不会显示,不过这种方法不推荐。因为 js和 jsp页面最好是分离的! 这样才不会每次都去加载这些js代码,浏览器会用自己的缓存把js 文件缓存起来
第二种:
分离开的js文件是这样的
$(document).ready(function () {...//排序if(sort){ pagehtml+="<a href='javascript:void(0)' name='soft' onclick=upward("+value+","+defaulthtml.parentId+") >↑</a> <a href='javascript:void(0)' name='soft' onclick=down("+value+","+defaulthtml.parentId+") >↓</a> ";}...});
$(document).ready(function ()
这段话的意思是 当整个页面加载完后才会执行里面的js
然后我在jsp页面是这样写的
<!-- 由于 在 jqwidget js里面 自定义表情不起作用。特在此实现自定义标签功能 --><script type="text/javascript"> var sort = false;//排序 <j:perm code="33"> sort = true; </j:perm></script>
这样也发挥了自定义标签的作用。 收工~~~~~~
1 0
- 自定义标签在js拼html元素不起作用时的解决方案
- 当加载外部JS文件不起作用时
- 跟踪js文件作为iframe页面不起作用时(淘宝天猫)
- JS 清除HTML 标签下面的元素
- Js标签元素自定义元素
- html标签全拼
- js中insertAdjacentHTML函数在元素标签的前中后插入html代码
- js在html标签中参数无效解决方案
- 针对GridView列设置宽度不起作用时
- maven编译项目,当项目不起作用时
- Jquery,js 改进拼html的方式
- Jquery,js 改进拼html的方式
- html标签全拼介绍
- html中用作文档分节的元素
- js对html元素自定义属性的操作
- 在js中如何获取到你点击的元素的html、对象、属性值、以及自定义的属性值
- HTML的元素、标签、属性
- HTML标签元素的分类
- hdu4614 Vases and Flowers (简单线段树 + 二分)
- 提取不重复的整数
- 图-普利姆(Prime)算法
- 家庭作业
- HttpURLConnection GET 方式 请求网络数据
- 自定义标签在js拼html元素不起作用时的解决方案
- UVa 725 Division(例题7-1)
- cocos2dx3.12 cannot locate symbol "atof" referenced by "libcocos2djs.so"
- spark链接hbase
- POJ - 3185 The Water Bowls (反转)
- Mongodb的update用法
- ZooKeeper的一致性协议:Zab
- 一个PWM程序参考一下
- 最大值_纪中1857_dp