js动态添加html代码后css渲染问题

aaron_gzt 2015-04-08 05:22:28
最近,在做项目时,通过js动态地将一段页面代码添加到某个div中,可是添加之后发现该div中部分链接、按钮的样式没有了,请问这要怎么解决呢?试过将该页面代码直接写到页面中,这个时候样式是正常的
...全文
16267 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
mmuhua 2017-12-16
  • 打赏
  • 举报
回复
这个最后怎么解决的 我使用 document.createElement()和innerHTML class样式也是不行
WormJan 2017-11-04
  • 打赏
  • 举报
回复
貌似是要重新渲染。jq的话用 $.parse.parse() 不知道js怎样重新渲染。
wang明yuan 2017-09-20
  • 打赏
  • 举报
回复
这个问题我也遇到了,使用js+jquery easyui后动态加载了jq easyui中的组件后没有组件的css样式。解决方案是在动态加载完成后使用$.parse.parse()方法重新渲染页面,即可正常。之后又遇到了新问题。我动态加载了不到200个div块(easyui-layout),使用这个方法重新渲染需要5s钟,简直不能忍。。没找到解决方案。
saultyU 2016-12-05
  • 打赏
  • 举报
回复
我也遇到了同样的问题: 应该可以通过手动触发create事件来解决,以一段我的代码为例: $('#nav').load('/static/nav.html', {}, function() { $('#nav').trigger('create'); }); 不知可否帮到楼主 参考文献: http://xiaoyaocao.iteye.com/blog/1829848
aaron_gzt 2015-04-10
  • 打赏
  • 举报
回复
引用 13 楼 tommercatfly 的回复:
[quote=引用 12 楼 jslang 的回复:] jquery在用append()和html()添加处理一些特定的元素时,有的就会出现丢失属性的bug。原因不明。 改用js原生的document.createElement()和innerHTML添加就好了
楼上的大大写的很清楚了,这个是js和jq可能出现的问题,鉴于你用的是框架,个人建议你用插件看看你这个元素写进html文件流后class是否被加载,另外看看页面加载的时候css和这个div的加载顺序,建议你用内联的方式写入试试看。 关于你内网无法把代码贴出,麻烦下次没法贴出就截图吧,起码我们这些回答的人可以比较客观的看到问题原因,不然我们的回答也不一定对你有用。[/quote]好的,谢谢你们了
aaron_gzt 2015-04-09
  • 打赏
  • 举报
回复
引用 7 楼 qq_26505177 的回复:
[quote=引用 6 楼 aaron_gzt 的回复:] [quote=引用 5 楼 qq_26505177 的回复:] 看不见代码,怎么可能知道问题…… 正常的添加,肯定是不会有影响的。 只能猜测是在添加到时候,某些问题导致按钮的属性发生了变化,css设定 与 按钮实际 已经不相符了。
通过append写进去,写进去的那段html代码中是有多个的div的。在浏览器调试中,和直接写在html中对比时发现,直接写在html中的时候,该部分的样式中会自动添加了一些东西上去的,而我通过js写进去的时候,这部分的是没有添加到的[/quote] 你是不是有js添加的样式? 如果顺序是这样。 js 添加div样式 js 添加div 结果是不会有样式的。[/quote]我自己写的js中是没有给div添加样式的,框架中的就不知道,框架用的是easyuiui的
aaron_gzt 2015-04-09
  • 打赏
  • 举报
回复
引用 7 楼 qq_26505177 的回复:
[quote=引用 6 楼 aaron_gzt 的回复:] [quote=引用 5 楼 qq_26505177 的回复:] 看不见代码,怎么可能知道问题…… 正常的添加,肯定是不会有影响的。 只能猜测是在添加到时候,某些问题导致按钮的属性发生了变化,css设定 与 按钮实际 已经不相符了。
通过append写进去,写进去的那段html代码中是有多个的div的。在浏览器调试中,和直接写在html中对比时发现,直接写在html中的时候,该部分的样式中会自动添加了一些东西上去的,而我通过js写进去的时候,这部分的是没有添加到的[/quote] 你是不是有js添加的样式? 如果顺序是这样。 js 添加div样式 js 添加div 结果是不会有样式的。[/quote]我去看看是不是又js添加的样式,谢谢你哦
冰雨无痕 2015-04-09
  • 打赏
  • 举报
回复
引用 6 楼 aaron_gzt 的回复:
[quote=引用 5 楼 qq_26505177 的回复:] 看不见代码,怎么可能知道问题…… 正常的添加,肯定是不会有影响的。 只能猜测是在添加到时候,某些问题导致按钮的属性发生了变化,css设定 与 按钮实际 已经不相符了。
通过append写进去,写进去的那段html代码中是有多个的div的。在浏览器调试中,和直接写在html中对比时发现,直接写在html中的时候,该部分的样式中会自动添加了一些东西上去的,而我通过js写进去的时候,这部分的是没有添加到的[/quote] 你是不是有js添加的样式? 如果顺序是这样。 js 添加div样式 js 添加div 结果是不会有样式的。
aaron_gzt 2015-04-09
  • 打赏
  • 举报
回复
引用 5 楼 qq_26505177 的回复:
看不见代码,怎么可能知道问题…… 正常的添加,肯定是不会有影响的。 只能猜测是在添加到时候,某些问题导致按钮的属性发生了变化,css设定 与 按钮实际 已经不相符了。
通过append写进去,写进去的那段html代码中是有多个的div的。在浏览器调试中,和直接写在html中对比时发现,直接写在html中的时候,该部分的样式中会自动添加了一些东西上去的,而我通过js写进去的时候,这部分的是没有添加到的
冰雨无痕 2015-04-09
  • 打赏
  • 举报
回复
看不见代码,怎么可能知道问题…… 正常的添加,肯定是不会有影响的。 只能猜测是在添加到时候,某些问题导致按钮的属性发生了变化,css设定 与 按钮实际 已经不相符了。
aaron_gzt 2015-04-09
  • 打赏
  • 举报
回复
引用 2 楼 tommercatfly 的回复:
麻烦把代码贴出来,我们可以看下问题出在哪里
是通过 $(div的id).append(html代码) 这样来将html内容写入div中的
aaron_gzt 2015-04-09
  • 打赏
  • 举报
回复
引用 2 楼 tommercatfly 的回复:
麻烦把代码贴出来,我们可以看下问题出在哪里
代码在公司的内网机上,无法取出来,所以贴不了出来了
tommercatfly 2015-04-09
  • 打赏
  • 举报
回复
引用 12 楼 jslang 的回复:
jquery在用append()和html()添加处理一些特定的元素时,有的就会出现丢失属性的bug。原因不明。 改用js原生的document.createElement()和innerHTML添加就好了
楼上的大大写的很清楚了,这个是js和jq可能出现的问题,鉴于你用的是框架,个人建议你用插件看看你这个元素写进html文件流后class是否被加载,另外看看页面加载的时候css和这个div的加载顺序,建议你用内联的方式写入试试看。 关于你内网无法把代码贴出,麻烦下次没法贴出就截图吧,起码我们这些回答的人可以比较客观的看到问题原因,不然我们的回答也不一定对你有用。
天际的海浪 2015-04-09
  • 打赏
  • 举报
回复
jquery在用append()和html()添加处理一些特定的元素时,有的就会出现丢失属性的bug。原因不明。 改用js原生的document.createElement()和innerHTML添加就好了
aaron_gzt 2015-04-09
  • 打赏
  • 举报
回复
引用 10 楼 qq_26505177 的回复:
[quote=引用 9 楼 aaron_gzt 的回复:] [quote=引用 7 楼 qq_26505177 的回复:] [quote=引用 6 楼 aaron_gzt 的回复:] [quote=引用 5 楼 qq_26505177 的回复:] 看不见代码,怎么可能知道问题…… 正常的添加,肯定是不会有影响的。 只能猜测是在添加到时候,某些问题导致按钮的属性发生了变化,css设定 与 按钮实际 已经不相符了。
通过append写进去,写进去的那段html代码中是有多个的div的。在浏览器调试中,和直接写在html中对比时发现,直接写在html中的时候,该部分的样式中会自动添加了一些东西上去的,而我通过js写进去的时候,这部分的是没有添加到的[/quote] 你是不是有js添加的样式? 如果顺序是这样。 js 添加div样式 js 添加div 结果是不会有样式的。[/quote]我自己写的js中是没有给div添加样式的,框架中的就不知道,框架用的是easyuiui的[/quote] 框架的话,看不见代码,那就说不准了。[/quote]我记得之前遇到过类似的,好像加了一句东西上去就可以了,可是我忘了
冰雨无痕 2015-04-09
  • 打赏
  • 举报
回复
引用 9 楼 aaron_gzt 的回复:
[quote=引用 7 楼 qq_26505177 的回复:] [quote=引用 6 楼 aaron_gzt 的回复:] [quote=引用 5 楼 qq_26505177 的回复:] 看不见代码,怎么可能知道问题…… 正常的添加,肯定是不会有影响的。 只能猜测是在添加到时候,某些问题导致按钮的属性发生了变化,css设定 与 按钮实际 已经不相符了。
通过append写进去,写进去的那段html代码中是有多个的div的。在浏览器调试中,和直接写在html中对比时发现,直接写在html中的时候,该部分的样式中会自动添加了一些东西上去的,而我通过js写进去的时候,这部分的是没有添加到的[/quote] 你是不是有js添加的样式? 如果顺序是这样。 js 添加div样式 js 添加div 结果是不会有样式的。[/quote]我自己写的js中是没有给div添加样式的,框架中的就不知道,框架用的是easyuiui的[/quote] 框架的话,看不见代码,那就说不准了。
tommercatfly 2015-04-08
  • 打赏
  • 举报
回复
麻烦把代码贴出来,我们可以看下问题出在哪里
  • 打赏
  • 举报
回复
没见过这种情况……难道你的样式是带expresion的?

87,902

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧