重新加载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) }); });