suchen

Heim  >  Fragen und Antworten  >  Hauptteil

javascript - Warum wird js nicht in der Reihenfolge ausgeführt, in der es geladen wird?

Der Code, den ich verwende, ist die Hervorhebung des Quellcodes.
Er muss in <pre> geschrieben sein, um hervorgehoben zu werden, und <pre> muss mit class="prettify" hinzugefügt werden.
Also verwende ich $("pre"). attr( "class", "prettify"); füge alles auf einmal in js hinzu.
Keine Notwendigkeit, es von Hand zu schreiben.
Der Code sieht wahrscheinlich so aus

<pre>
<?php
echo "hello world";
?>
</pre>

Die js-Reihenfolge unten ist so

<script src="./public/js/jquery.min.3.2.1.js"></script>
<script>$(function () {
        $("pre").attr("class", "prettyprint");
    });</script>
<script src="./public/prettify/run_prettify.js"></script>

Unter Google Chrome ist es normal, zuerst jq zu analysieren und dann mein js zu analysieren, das Klassen hinzufügt. Schließlich wird js mit Quellcode-Hervorhebung ausgeführt.
Unter Firefox und IE wird jedoch zuerst jq ausgeführt ausgeführt. js mit hervorgehobenem Quellcode. Ich weiß nicht, warum das passiert

给我你的怀抱给我你的怀抱2786 Tage vor593

Antworte allen(3)Ich werde antworten

  • 怪我咯

    怪我咯2017-05-19 10:36:37

    $(function () {
            $("pre").attr("class", "prettyprint");
        });

    $(function () { 是在页面DOM加载完以后执行里面的JS,JS已经按照你的顺序在执行。只是中间你放的是事件监听。
    你可以把代码高亮也放在DOM加载完之后。

    Antwort
    0
  • 漂亮男人

    漂亮男人2017-05-19 10:36:37

    https://github.com/amdjs/amdj...
    /q/10...
    这个帖子可以解决你的问题

    Antwort
    0
  • 高洛峰

    高洛峰2017-05-19 10:36:37

    <script src="./public/js/jquery.min.3.2.1.js"></script>
    <script>
        $("pre").attr("class", "prettyprint");
    </script>
    <script src="./public/prettify/run_prettify.js" defer="defer"></script>

    试试

    Antwort
    0
  • StornierenAntwort