我有一个jquery点击事件,它使用.load()
将html表单加载到div中表单片段有一个引用js文件,该文件重新定义了js,同时还使用ajax响应填充表单输入。
当我单击表单上的保存时,然后加载div(使用.load)保存的视图版本。
如果我再次单击编辑以启动我提到的第一个操作,则会执行加载,但不会重新加载javascript引用,因此ajax填充不会启动
任何解决方案?
<script type="text/javascript" src="js/controls.js"></script>
编辑:添加代码
function populate() {
var index = 1;
$("#list").html(" ");
for (item in object) {
var html ='blah';
$("#list").append(html);
$(".item").live('click',
function() {
$("#container").load("./html-includes/file.html?ver="+ver, function () {
apiCall.getData(referenceId);
alert('callback'+$rootScope.currentPage);
});
}
);
index++;
};
}
在这种情况下,文件html具有前面提到的javascript参考,其中有一个调试警报,在第二次调用.load
时没有提交答案 0 :(得分:0)
很可能你的$ .load()方法第一次工作,因为浏览器没有缓存中的数据。下次在循环中调用它时,不会执行Ajax调用,而是从缓存返回数据。结果回调没有被解雇.... 您可以使用fidller或类似工具看到这一点 - 您只会看到一个服务器请求....
可能的解决方案是关闭缓存(请参阅$ .ajax()方法)或在查询(aka url)中添加动态参数,如当前时间,因此浏览器不会缓存结果。 或者在$ .load()中使用post方法(只添加要发送的任何数据,Jquery将使用post而不是get),虽然我不确定它是否是优雅的方法 - )。