jquery - jquey tabs ajax load html 冲突问题?
问题描述
tabs load的html,里面有js,也有html,id,都有可能冲突,如何解决?(不用ifame哦,iframe每次加载明显不如load,即便是缓存,也要初始化很多的,而且iframe内部带的dialog要在iframe外显示也很费劲,多个页面有同样的dialog也会出现这种问题)
问题解答
回答1:有三种方案:
用某种命名规范把 id 修改成互不冲突的形式。虽然这个解决方案看起来最不符合题主的要求,但是个人最推荐这么做,会减少后期的不少麻烦。如果这些 html 逻辑上是在同一个界面上的,那么它们就本该具有不同的 id,要不以后写逻辑和样式的时候都会遇到麻烦。
假设只是 tab 的 html 会有 id 冲突,且同时显示的 tab 只有一个,那么可以考虑每次切 tab 的时候都把没显示的 tab 从 DOM 里面 detach,当需要的时候再 append。
使用 <iframe src='about:blank'></iframe> 来显示 html,通过设置 <iframe> 的 contentWindow.document.body.innerHTML 可以修改它的内容。如果还希望能很好的显示 html 的外带样式和脚本,还有各种 dialog,也可以有各种 hack 的方法,但总归是个 hack,后患无穷。
P.S. 应题主要求,补充一些 hack 的思路。
如何让 jQuery UI 的 dialog 默认插入到指定的地方?可以通过下面代码覆盖 dialog 的默认选项,其中关键的是 appendTo 这个选项。
$.extend($.ui.dialog.prototype.options, { appendTo: tabNode});
每次加载 tab 前、切换 tab 后的时候都把这个选项设置一下,设置成当前显示的这个 tab node。
相关文章:
1. Python处理Dict生成json2. (python)关于如何做到按win+R再输入文件文件名就可以运行?3. 想练支付宝对接和微信支付对接开发(Java),好像个人不可以,怎么弄个企业的4. mysql - Sql union 操作5. java - Mybatis 数据库多表关联分页的问题6. 急急急!!!求大神解答网站评论问题,有大神帮帮小弟吗7. javascript - 按钮链接到另一个网址 怎么通过百度统计计算按钮的点击数量8. python - 如何使用websocket在网页上动态示实时数据的折线图?9. python - 请问这两个地方是为什么呢?10. python2.7 - python 正则前瞻 后瞻 无法匹配到正确的内容
