【问题标题】:href doesn't load html's scripthref 不加载 html 的脚本
【发布时间】:2020-04-01 21:09:31
【问题描述】:

我在我的网页中创建了一个导航栏,它使用 href 链接到不同的 html 文件。 navbar.html 有 javascript 来更改活动链接 UI,以向用户显示我像这样加载的单击了哪个项目。

navbar.html

<script>
   require('../assets/navbar.js');
</script>

navbar.js

$('#sidebar-button').click(function() {
    $('.ui.sidebar').sidebar('toggle');
 });

 $('div.sidebar-items > a').click(function() {
    $(this).attr('class', 'active item');
    $(this).siblings().attr('class', 'item');

    $(this).find('i').addClass('teal');
    $(this).siblings().find('i').removeClass('teal');

    $('.ui.sidebar').sidebar('toggle');
 });

它将成功加载另一个 html 页面,我在 search.html 中包含相同的 navbar.html:

search.html

<script> $(function() {
         $('#navbar').load("../html_pages/navbar.html", function() {
               $.getScript("../assets/navbar.js")
           });
      });
</script>

但是,活动链接不会更改为单击的相应页面(在本例中为 search.html)。导航栏只是在编写原始 html 时加载。如何让navbar.js 在加载另一个页面时也执行并更改 html?

【问题讨论】:

标签: javascript jquery html


【解决方案1】:

除非它也是一个 Jquery 函数,否则require() 是一个 Node JavaScript 函数。您应该收到类似于“require 不是函数”或“require 未定义”的错误。

我相信你的 HTML
<script> require('../assets/navbar.js'); </script>

应该是
&lt;script src='../assets/navbar.js'&gt;&lt;/script&gt;

这会将 JavaScript 从源 src 文件加载到脚本所在的 HTML 页面中,尽管这是一个相对标签,因此可能需要修改为相对于您将其应用到的任何页面。

【讨论】:

  • 感谢您的回复,但这仍然不起作用。我认为问题在于,当我每次将 navbar.html 加载到我的 html 文件中时,它会重置为原始 html 并且实际上覆盖了我所做的任何 javascript 更改。但是,我需要这些更改持续存在。
  • 好吧,我其实不懂JQuery,所以找不到代码有什么问题。
猜你喜欢
  • 1970-01-01
  • 2013-01-19
  • 2016-11-07
  • 1970-01-01
  • 2017-11-29
  • 2021-12-17
  • 2016-05-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多