【问题标题】:Is it possible to refresh a page without loading specific divs using Javascript?是否可以在不使用 Javascript 加载特定 div 的情况下刷新页面?
【发布时间】:2014-10-09 19:35:34
【问题描述】:

是否可以在不重新加载菜单/标题的情况下使用 Javascript 刷新页面?

我正在构建一个页面,允许用户查看桌面和底座的不同组合,并且我一直在通过页面加载重置构建区域。但是我不喜欢它还会重新加载我的标题(导致跳转)的事实。

我知道我可以告诉页面只加载包含构建区域的 div:

$('#tableBuilder').load(document.URL + '#table Builder');

但是,这不会重新加载我的链接 script.js 文件,该文件位于破坏我的构建区域的页面中。

【问题讨论】:

  • 您需要将script.js中的代码封装在一个或多个函数中,然后在页面加载时调用它们一次,并且每次重新加载标题下的所有内容时调用一次。
  • @CarlSmith,在这里完全显示了我的无知,但是我如何调用一个看起来像这样的函数呢?: ( function( $ ) {...} )( jQuery );函数中包含几个其他函数,以及我需要刷新的代码。我试着这样称呼它:function($); (函数($));我还尝试将整个内容包装在一个新函数中,但这会导致 .js 在初始加载时失败。
  • 经过更多研究,似乎 (function($) {...})(jQuery);是一个IIFE。有关 IIFE 的更多信息,请访问 here。总而言之,我的 .js 文件中的函数未包含在我的页面中。相反,函数的结果被包含在内,使我无法调用该函数(因为只存在结果)。仍在努力获得我想要的结果。
  • 你需要把你传递给'onready'的IIFE拿出来,然后把它命名。您可以定义一个名为 boot 或其他名称的大函数,然后将其按名称传递给 onready 调用,然后在“重新加载”页面时再次调用它。如果没有看到您的代码,就不可能说出什么是最好的,但这就是想法。您需要打破 onready 逻辑,为其命名,然后将其称为 onready,并在重新加载时再次调用。

标签: javascript html css


【解决方案1】:

确实如此,当您在 JavaScript 中使用 element.load(content) 时,它并不关心您在页面中实现了哪些 javascript 插件。 这意味着,例如,如果您在页面中实现了一个 .js 文件,该文件会选择整个页面中的每个输入,并为所有输入添加一个简单的 border:blue,当您使用 element.load('new content , for example a new input field') 在页面中动态加载新元素时,此新输入字段的边框永远不会变为 蓝色,因为您的 .js 文件有在此之前加载(当您的页面第一次完全加载时)并且其所有功能都已触发。

因此,在这种情况下,您必须在加载新内容后运行您的函数:

例如:

      myDiv.load('<input id="aNewInput">');
      myFunction(); // This function sets *border:blue* 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-07
    • 1970-01-01
    • 2017-05-11
    • 2017-06-02
    • 2022-08-19
    • 1970-01-01
    相关资源
    最近更新 更多