$(window).load()块中的jQuery事件在firebase上托管后不起作用

时间:2016-07-17 15:12:33

标签: javascript jquery firebase firebase-hosting

  1. 我已将静态网站部署到firebase托管。有页面 - https://sapcert-d5654.firebaseapp.com/sap-erp.html

  2. 链接到此页面的脚本 filterContent.js 。此脚本中有两个代码块:$(document).ready(function () {...}$(window).load(function() {...}。从.keyup()块中键入事件(.ready())可以正常工作,但点击来自.click()块的事件(.load())根本不起作用。内容.load()阻止:

  3. $(window).load(function() {
        console.log( "window loaded" );
    
        var navLinkSelector = "a.mdl-navigation__link";
        var subsolutionBlockSelector = ".subsolution-block";
    
        //Filtering by link click
        $(navLinkSelector).click(function(eventObject) {
            var currentLink = eventObject.target;
            var parent = $(currentLink).parent();
            var links = parent.children();
            var curLinkIdx = links.toArray().indexOf(currentLink);
    
            $.each(links, function (index, elem) {
                if (index != curLinkIdx) {
                    $(elem).css("font-weight","normal");
                }
            });
    
            if ($(currentLink).attr("id") != "clearFilter") {
                if ($(currentLink).css("font-weight") != "bold") {
                    $(currentLink).css("font-weight","bold");
                }
    
                $(subsolutionBlockSelector).each(function () {
                    if ($(currentLink).text().search($(this).attr("title")) < 0) {
                        $(this).hide();
                    } else {
                        $(this).show();
                    }
                });
                if ($("#clearFilter").css("display") == "none") {
                    $("#clearFilter").show();
                }
            } else {
                $(subsolutionBlockSelector).show();
            }
            if ($(".mdl-layout__drawer").hasClass("is-visible")) {
                $(".mdl-layout").get(0).MaterialLayout.toggleDrawer();
            }
        });
    
        $("#clearFilter").click(function (eventObject) {
            eventObject.preventDefault();
            if ($(this).css("display") != "none") {
                $(this).hide();
            }
        });
    });
    
    1. 但是当我使用gulp serve:dist在本地运行网站时,一切正常。

    2. 当我通过谷歌驱动器托管这个网站时,问题是一样的。

2 个答案:

答案 0 :(得分:1)

enter image description here

它显示阻止跨源请求:您可能需要检查https://developers.google.com/api-client-library/javascript/features/cors

答案 1 :(得分:0)

非常感谢@progysm !!!

  1. 我已经阅读了这篇文章 - https://learn.jquery.com/events/event-delegation/
  2. 更改从子级$(navLinkSelector).click(function(eventObject) {...}到其父级$("#subsolutions-list").on("click", navLinkSelector, function(eventObject) {...}
  3. 的事件链接
  4. 它现在有效!!!