重新加载javascript没有刷新页面
免责声明:我对这些东西很新,所以请记住这一点。
你好,
我使用AJAX设置网站,无需离开页面即可加载页面内容。 我有几个页面使用JavaScript来加载列表信息。
这是链接设置看起来:
#home #list.php?list=$list_id
我有一个名为$ list_id的变量,并使用一些javascript来加载列表。 我面临的问题是,如果我加载一个列表(让我们说ID为1的列表)然后返回并加载另一个列表(让我们说ID为2的列表)javascript没有重新加载到新列表ID的帐户。
无论如何,我可以重新加载javascript代码来解释新变量,而无需刷新页面?
谢谢!
我不明白你到底遇到了什么问题。 但是如果你想重新加载脚本而不刷新页面,你可以这样做:
var script = document.createElement("script"); script.type = "text/javascript"; script.src = "somefile.js"; document.getElementsByTagName("head")[0].appendChild(script);
或者使用jQuery.loadScript函数
将HTML插入DOM脚本时执行。 因此,当您通过AJAX加载一些HTML时,您可以执行包含的脚本。
您是否可以将$ list_id存储在隐藏的输入字段中,然后在ajax调用后更新它?
例如
只是迅速将这些拼凑在一起给你一个想法,所以可能会有一些js错误
您可以使用jQuery的getScript()
函数动态获取(和执行)脚本。 例如:
$.getScript("/js/myscript.js");
由于你没有发布任何代码我在这里做了一个疯狂的猜测。
在这种情况下,您不必重新加载Javascript代码,但可以将数据存储在对象中。
请向我们展示一些JS代码以正确回答您的问题。
通常,最好在此处设计协议。 您应该有一个函数来解析正在加载的任何“列表”,一个函数用于解析URL哈希,一个函数用于加载新列表。 您可以使用location.hash
获取URL哈希。
这是一个简单的例子,它希望列表是某种格式。 因此它将基于协议,因为在您的Javascript中应该只需要加载一次,并且它应该期望某种特定的格式,它能够解析而不需要任何添加的依赖项。 实际上需要依赖关系是可以的,但是如何/何时/何地应该在协议中工作。
List 1 List 2 List 3
。
$('.listLoader').onclick(function() { $.ajax({ 'success': function () { //Do what you gotta do with your lists }, 'url': location.hash.substring(1) }); });