我在我的布局装饰器模板和我的个人页面的<head>
中定义了javascript文件,并对其进行了装饰。当我更新其中一个页面中的胸腺叶片段时,父页面头部定义的javascript不再起作用。有没有一种标准的方法来“刷新”这些js文件?
谢谢。
补充说明:
我有一个通过ajax调用提交的表单,它更新页面中的一个表。我有一个针对更新表中的按钮的Jquery onClick函数。javascript似乎不能绑定到页面更新部分中返回的元素。我选择了by element class,并且可以看到在部分片段呈现之前,选择是有效的。
发布于 2016-04-06 21:06:17
对我来说,我不清楚你说的是什么意思
在父页面头部定义的
javascript不再有效。
将在服务器上创建该页面。通常它包含javascript文件的url。
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
在这种情况下,“刷新”javascript文件只能在客户端发生。
在客户端检查页面的html。标签是否与预期一致?所有预期的javascript文件都有标签吗?
使用浏览器工具(例如Google Chrom开发人员工具)检查所有脚本文件是否已实际加载。
如果这不起作用,可能是脚本标记的顺序在第一次加载和第二次加载之间发生了变化。这可能导致在浏览器中执行的javascript的不同行为。
编辑:
在初始加载时,您将javascript回调绑定到dom元素。
这可以直接完成,也可以通过Jquery或其他库完成。
当加载新的dom元素时,它没有绑定回调,即使它与替换的dom元素具有相同的id。
所以在加载之后你必须再次绑定你的回调函数。
如果你“手动”绑定了它们,只需再次绑定即可。
如果你使用的是进行绑定的JQuery插件,请查看代码或文档,它们中的许多都有相应的函数,或者可以再次调用initialization。
发布于 2016-08-23 17:25:41
将新内容添加到DOM后,需要再次绑定新内容。
假设我有一个带有某个类的按钮,事件被绑定到这个类:
<button class="someclass">Button 1</button>
<script>
var something = function() {
// do something
};
$(".someclass").on("click", something);
</script>
如果我将同一类中的更多按钮添加到DOM中,它们将不会绑定click事件。因此,一旦您通过ajax加载了新内容,还要删除所有绑定并再次添加(您需要删除,否则您将拥有包含2个事件的按钮)。
$(".someclass").off("click");
$(".someclass").on("click" , something);
https://stackoverflow.com/questions/36460034
复制相似问题