首页 新闻 会员 周边 捐助

动态生成的Html,的js无效

0
悬赏园豆:100 [已解决问题] 解决于 2014-08-12 08:55

js 包括自己写的,还有写easyui框架的。如何解决

问题补充:

比方说Easyui 有个日期输入框

<input id="dd" class="easyui-datebox" ></input>  

在easyui 框架下只需要设置 样式为easyui-datebox,就可以了。但是如果 你post 一段html代码

$("#aa").append("<input id='ss' class='easyui-datebox' />")

easyui时间输入框 就不行了。

    
function xx()
    {
    $("#aa").append("<input id='ss' class='easyui-datebox' />")
    }
</script>
</head>
<body>
<input id='sss' class='easyui-datebox' />
<input  type="button" value="点击,加入一段html"  onclick='xx()'/>
<div id="aa">
</div>

结果是第一个是时间输入框,第二个不是

亦有哭亦有笑的主页 亦有哭亦有笑 | 初学一级 | 园豆:5
提问于:2014-08-11 15:56
< >
分享
最佳答案
0

用js原生API 如 div.innerHTML = 'some html';  的话, 浏览器并不会将‘some html’ 里面的script 解析执行, JQ里面的实现大约是先分析‘some html’, 找到里面的script, 然后eval(); , 你可以用jQ的.html()函数给节点添加内容

收获园豆:100
rock- | 菜鸟二级 |园豆:302 | 2014-08-11 16:56

1、第一种页面加载的时候,会加载css

2、第二种通过点击,不会加载css,只能通过代码,如

  function xx() {
            $("#aa").html("<input id='ss'  />");
            $("#ss").datebox();  //在动态生成字符串append(append会重复生成,可以先empty,简单改为html)到页面上,在给id为ss初始化,
        }
秋壶冰月 | 园豆:5903 (大侠五级) | 2014-08-11 20:02

@秋壶冰月: 第二种你可以先手动append一个样式标签

$('head').append('<link rel="stylesheet" href="xx" />');

 或者提前在页面顶部加上

rock- | 园豆:302 (菜鸟二级) | 2014-08-12 10:34
其他回答(2)
0

应该是加载的时机问题,通过浏览器自带的开发人员工具进行!看到底那里出问题了!

秋壶冰月 | 园豆:5903 (大侠五级) | 2014-08-11 16:01
-2

求完整代码  不然不知道错误所在

骑着蜗牛耍流氓 | 园豆:135 (初学一级) | 2014-08-11 16:06
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册