代码之家  ›  专栏  ›  技术社区  ›  RTC222

跨浏览器jquery不兼容问题

  •  2
  • RTC222  · 技术社区  · 7 年前

    “我的网页”左侧的一列中有一组链接,右侧的一节中有文本。文本部分用一个名为“mtx”的占位符标记,该占位符在页面加载时被内容替换,并且当单击任何链接时(链接都是调用函数showmaintext的所有按钮单击)。它适用于所有的火狐版本,从56到56,但它不适用于Chrome或Safari浏览器,或苹果iPhone浏览器。

    这是DIV标记的代码:

    <div class="main_text">
        <div id="C2"><span style="color:black">MTX</span></div>
    </div>
    

    以下是jquery代码:

    <script>
    function ShowMainText(type) {
        var filename = "text_" + type + ".htm"
        $( "#C2" ).hide().load( filename ).fadeIn(500);
    }
    </script>
    

    这是c2 id css代码:

    #C2{
        color: rgb(117,163,126);
        font-family: camphorW01-Light,calibri,arial;
        font-size: 8pt;
        width: auto;
    }
    

    以下是主要的\u文本类CSS代码:

    .main_text {
        grid-column: 8 / 14;
        grid-row: 6 / 19;
        overflow: auto;
        text-align: left;
        justify-items: center;
    }
    

    我认为这是jquery行的问题 $( "#C2" ).hide().load( filename ).fadeIn(500); 但我不知道到底怎么了。

    这个代码来自一个更大的项目。如果需要一个完整的可复制的例子来回答这个问题,我可以创建一个并发布它,但是我希望有人知道答案,因为这个问题似乎只限于一行。

    edit:chrome 66 dev console显示:uncaught referenceerror:showMaintext未在onload上定义。index.htm(27页)。这是第27行:body onload=“showMaintext(1);linkLight();”onclick=“hideDropDown_B(event);changeColor(event);changeColorbdd(event);getLastGae(event);getFocusElement(event);”>。这似乎就是问题所在——Chrome66在页面加载时找不到这个,但火狐找到了。我正在努力,但我会感激你的任何想法。谢谢。

    1 回复  |  直到 7 年前
        1
  •  2
  •   T.J. Crowder    7 年前

    如果你想要 fadeIn 要在加载元素之后发生,必须等待使用 load 的完成回调。

    $("#C2").hide().load(filename, function() {
        $(this).fadeIn(500);
    });
    

    您可以使用回调的参数来确定 负载 成功,请参阅文档了解详细信息。