代码之家  ›  专栏  ›  技术社区  ›  Paul Flood

jqueryhtml包括停止jQuery工作

  •  0
  • Paul Flood  · 技术社区  · 7 年前

    抱歉,如果这是一个重复的问题,但我找不到任何有关这个具体问题,我有。

    --

    所以我要做的是将HTML文件包含到另一个HTML文件中。我希望调用header.html和footer.html来提高效率。

    我发现下面的jQuery代码拉入了页眉和页脚,这在HTML和CSS方面非常有效,但我的问题是管理使用jQuery的菜单的操作不再有效。当所有代码都在同一页上时,它们可以正常工作。

        <!DOCTYPE html>
        <html>
            <head>
                <script src="jquery.min.js"></script>
                <script>
                    $(document).ready(function(){   
                        $('#content').load("new.html");
                    });
                </script>
            </head>
            <body>
                <div id="content"></div>
            </body>
        </html>
    

    我目前正在Mac上使用localhost,但我也在服务器上尝试过。

    我也找到了这些链接,但运气不好

    How to include an HTML file with jQuery?

    jQuery .load() call doesn't execute JavaScript in loaded HTML file

    https://github.com/LexmarkWeb/csi.js

    所有操作都有相同的结果,内容加载没有问题,但操作不起作用。不显示错误。

    还有其他本地调用的JS文件,我使用的是Materialize框架。

      <!--  Scripts-->
      <script src="js/jquery-2.1.1.min.js"></script>
      <script src="js/materialize.js"></script>
      <script src="js/init.js"></script>    
      <script type="application/javascript">   
            $(".dropdown-trigger").dropdown();
      </script> 
    

    物化 https://materializecss.com/bin/materialize.js

    这是init.js中的文件

    (function($){
      $(function(){
        $('.sidenav').sidenav();
      }); // end of document ready
    })(jQuery); // end of jQuery name space
    

    http://spudatron.net/test/html-include/ 以帮助了解我的设置。

    如果有人能帮忙,我将非常感激。

    2 回复  |  直到 7 年前
        1
  •  1
  •   makku    7 年前

    如果我对每件事都理解正确,你就包括 init.js “main”html文件中的文件( index.html $('.sidenav').sidenav(); 很可能是在 .sidenav

    我的建议是利用 $.load onComplete

    $('#content').load("new.html", function () {
        $('.sidenav').sidenav();
    });
    

    这将运行 $('.sidenav').sidenav(); new.html 已加载(您很可能希望替换 新建.html header.html #content 无论你想把导航放在哪里)。

        2
  •  0
  •   Ussaid Iqbal    7 年前

    好吧,你为什么不试试 delegate 方法,只需修改js中的click事件。

    $(object).on('click touchend', dynamic object selector, function(){});