Heim  >  Artikel  >  Web-Frontend  >  Detaillierte Erläuterung der Anwendungsbeispiele von jQuery.holdReady(hold)

Detaillierte Erläuterung der Anwendungsbeispiele von jQuery.holdReady(hold)

伊谢尔伦
伊谢尔伦Original
2017-06-16 15:20:072109Durchsuche

Ausführung des .ready()-Ereignisses anhalten oder fortsetzen.

Die Methode $.holdReady() ermöglicht es dem Aufrufer, das Ready-Ereignis von jQuery zu verzögern. Diese erweiterte Funktionalität wird in der Regel mit einem dynamischen Skript-Loader durchgeführt, der JavaScript wie ein jQuery-Plugin lädt und das Auftreten zusätzlicher Bereitschaftsereignisse ermöglicht, selbst wenn das DOM möglicherweise bereit ist. Diese Methode muss früh in der Datei aufgerufen werden, unmittelbar nach dem

jQuery-Skript wie diesem. Der Aufruf dieser Methode nach dem Ready-Ereignis hat keine Auswirkung, selbst wenn es ausgegeben wurde.

Um das Bereitschaftsereignis zu verzögern, rufen Sie zum ersten Mal $.holdReady(true) auf. Wenn das Ready-Ereignis ausgeführt werden soll, wird $.holdReady(false) aufgerufen. Bitte beachten Sie, dass mehrere Holds für das Ready-Ereignis platziert werden können, wobei jeder nacheinander $.holdReady(true) aufruft. Das Ready-Ereignis wird erst ausgeführt, wenn alle entsprechenden $.holdReady(false) gepostet wurden und die normalen Datei-Ready-Bedingungen erfüllt sind.

jQuery.holdReady(hold) Rückgabewerttyp boolean

Mit der Methode jquery.holdReady() kann das Abschlussereignis von jQuery durch diese Funktion gesperrt werden.
Eine typische Anwendung dieser erweiterten Funktion ist das dynamische Laden von Skripten wie jQuery-Plug-ins usw.
Das jQuery-Abschlussereignis wird erst ausgelöst, wenn das angehängte Skript geladen wird, selbst wenn die Seite bereit ist.
Diese Funktion muss im vorderen Teil der Seite aufgerufen werden, z. B. im Tag, jQuery lädt die nächste Zeile.
Der Aufruf dieser Funktion, nachdem das Abschlussereignis ausgelöst wurde, hat keine Auswirkung.
Verwendung: Erster Aufruf von .holdReady(true) [das Abschlussereignis wird nach dem Aufruf gesperrt]. Wenn Sie bereit sind, das Abschlussereignis auszulösen, rufen Sie .holdReady(false) auf. Es ist zu beachten, dass
dem Abschlussereignis mehrere Sperren hinzufügen kann und jede Sperre einem Aufruf von $.holdReady(false)[unlock] entspricht.
Das Abschlussereignis von jQuery wird ausgelöst, wenn alle Sperren aufgehoben wurden und die Seite bereit ist.
Tatsächlich handelt es sich um eine Sicherheitssperre für einige Codes, die auf dynamische Skripte angewiesen sind.
Das Ready-Ereignis wird ausgeführt, nachdem die erforderlichen dynamischen Skripte geladen wurden, und nicht, nachdem der DOM-Baum erfolgreich erstellt wurde.

Beispielcode:

Beispiel 1:

<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="" />
<title>php.cn</title>
<script type="text/javascript" src="mytest/jQuery/jquery-1.8.3.js"></script>
<script type="text/javascript">
jQuery.holdReady(true);
$(document).ready(function(){
  alert("我不会被弹出");
})
</script>
</head>
<body>
  
</body>
</html>

Im obigen Code aufgrund der Hinzufügung von jQuery.holdReady(true), obwohl das Dokument geladen ist , es wird nicht Die Funktion in ready() wird ausgeführt.

Beispiel 2:

<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="" />
<title>php.cn</title>
<script type="text/javascript" src="mytest/jQuery/jquery-1.8.3.js"></script>
</head>
<body>
<button id="first">点击测试弹出</button>
<button id="second">解除延迟</button>
<script type="text/javascript">
jQuery.holdReady(true) 
$(document).ready(function(){
  $("#first").click(function(){
    alert("我不会被弹出");
  })
})
$("#second").click(function(){
  jQuery.holdReady(false);
})
</script>
</body>
</html>

Wenn Sie klicken, um die Verzögerung aufzuheben, wird sie angezeigt.

Schauen wir uns noch einmal ein kleines Beispiel an

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript" src="../js/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="index.js"></script>
<title>Insert title here</title></head>
<body>
<input type="button" id="btn" value="呵呵">
</body>
</html>

Dann gibt es zwei js-Dateien

Die erste geladene ist index.js

$.holdReady(true);//将holdReady改为ture,点击按钮就没有任何效果,改为false就可以是用来里面的js事件$(function(){
    $(&#39;#btn&#39;).click(function(){
        alert(123);
    });

});

Schreiben Sie unten Es gibt zwei js-Dateien index.js und hold.js

Nur ​​index.js wird in JSP geladen, und es wird entschieden, ob hold.js in index.js geladen werden soll
Der Code ist wie folgt:

//hold.js$(function(){
    alert(&#39;这是使用holdReady加载出来的&#39;);
}); 

//index.jsjQuery.holdReady(true)
$.getScript("hold.js", function() {
    jQuery.holdReady(false);
});

Wenn Sie hold.js laden, rufen Sie eine Rückruffunktion auf und ändern Sie true in false, damit die Datei hold.js geladen werden kann

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Anwendungsbeispiele von jQuery.holdReady(hold). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn