2. 使用document.write输出代码,我等简洁主义者所不愿。
3. 最简单的方法是把js放到需要调用的父页面,那想这样的公用页面,每个地方调用都要写入一次,代码冗余。
4. eval是个解决方法,虽然低效。
5. 复杂的解决方法:正则匹配出加载页面中的所有js,为这些js创建同样多个<script>标签,把js内容插入即可执行。但使用中发现,firefox可行,但IE还是不从。(师太,您就从了吧~)
我习惯用jquery,所以只能给你个jquery里的问题解决办法因为ajax请求回来的对象都是后期加入的,而html只在加载时候执行一次,所以需要在执行事件的父级上去加绑定事件
如:
$('body').on('click' , '.zan' , function(){
//do something ...
})
$('body')范围比较大,但只要保证除了要实现效果的地方以外没有.zan这个类的元素就可以,当然也可以缩小范围;
.on就是事件的绑定方法,根据jquery版本不同会有点变化;
click是事件触发动作,你的应该就是点击;
.zan是触发的元素,这里表示class为zan的元素,可以根据你自己需要改动
以上办法供你参考
原因在你为$("#xx")添加click事件处理程序时,$("#xx")还没有加载到页面中,所以会丢失绑定,可以绑定到祖先元素,live表示密切监视浏览器,当被点击元素与选择元素匹配的时候,才执行处理程序。如果你的jquery版本是1.9以前的
$("#xx").live('click',
function(){
...
})
1.9以后的
$(document).on('click',
"#xx",
function(){
...
})