หากคุณต้องการให้เหตุการณ์ทำงานบนเพจของคุณคุณควรเรียกใช้ในฟังก์ชัน $ (document) .ready () ทุกอย่างที่อยู่ภายในจะโหลดทันทีที่โหลด DOM และก่อน ที่เนื้อหาของหน้าจะโหลด
ฉันต้องการทำโค้ดจาวาสคริปต์หลังจากโหลดเนื้อหาของหน้าแล้วเท่านั้นจะทำได้อย่างไร?
หากคุณต้องการให้เหตุการณ์ทำงานบนเพจของคุณคุณควรเรียกใช้ในฟังก์ชัน $ (document) .ready () ทุกอย่างที่อยู่ภายในจะโหลดทันทีที่โหลด DOM และก่อน ที่เนื้อหาของหน้าจะโหลด
ฉันต้องการทำโค้ดจาวาสคริปต์หลังจากโหลดเนื้อหาของหน้าแล้วเท่านั้นจะทำได้อย่างไร?
คำตอบ:
ใช้loadแทนready:
$(document).load(function () {
// code here
});
อัปเดต
คุณต้องใช้.on()ตั้งแต่ jQuery 1.8 ( http://api.jquery.com/on/ )
$(window).on('load', function() {
// code here
});
จากคำตอบนี้ :
อ้างอิงจากhttp://blog.jquery.com/2016/06/09/jquery-3-0-final-released/ :
ลบชื่อแทนเหตุการณ์ที่เลิกใช้แล้ว
.load,.unloadและ.errorเลิกตั้งแต่ jQuery 1.8 มีไม่มาก ใช้.on()ลงทะเบียนผู้ฟัง
$(document).on('load', ...ที่จะต้องมี$(window).on('load',...
กำลังติดตาม
$(document).ready(function() {
});
สามารถเปลี่ยนได้
$(window).bind("load", function() {
// insert your code here
});
มีอีกวิธีหนึ่งที่ฉันใช้เพื่อเพิ่มเวลาในการโหลดหน้าเว็บ
$(document).ready(function() {
$(window).load(function() {
//insert all your ajax callback code here.
//Which will run only after page is fully loaded in background.
});
});
ไม่มีใครพูดถึงเรื่องนี้
$(function() {
// place your code
});
ซึ่งเป็นฟังก์ชันชวเลขของ
$(document).ready(function() { .. });
แก้ไข: โค้ดนี้จะรอจนกว่าเนื้อหา (รูปภาพและสคริปต์) ทั้งหมดจะโหลดและแสดงผลในเบราว์เซอร์
ฉันมีปัญหานี้ซึ่ง$(window).on('load',function(){ ... })จะทำให้โค้ดของฉันเริ่มทำงานเร็วเกินไปเนื่องจากJavascript ที่ฉันใช้มีวัตถุประสงค์เพื่อการจัดรูปแบบและซ่อนองค์ประกอบ องค์ประกอบที่ซ่อนเร็วเกินไปและที่เหลือมีความสูงเป็น 0
ตอนนี้ฉันใช้$(window).on('pageshow',function(){ //code here });และมันก็เริ่มทำงานในเวลาที่ฉันต้องการ
คุณสามารถหลีกเลี่ยงการไม่ได้กำหนดใน "$" ด้วยวิธีนี้
window.addEventListener("DOMContentLoaded", function(){
// Your code
});
แก้ไข:การใช้ 'DOMContentLoaded' เร็วกว่าแค่ 'โหลด' เพราะโหลดหน้ารอโหลดเต็มแล้ว imgs รวม ... ในขณะที่ DomContentLoaded รอแค่โครงสร้าง
ฉันกำลังมองหาปัญหาเดียวกันและนี่คือสิ่งที่ช่วยฉันได้ นี่คือรุ่น jQuery 3.1.0 และกรณีที่โหลดจะเลิกสำหรับการใช้งานตั้งแต่ jQuery รุ่น 1.8 เหตุการณ์การโหลดถูกลบออกจาก jQuery 3.0 คุณสามารถใช้วิธีการและผูกเหตุการณ์การโหลด JavaScript:
$(window).on('load', function () {
alert("Window Loaded");
});
และถ้าคุณต้องการเรียกใช้ฟังก์ชันที่สองหลังจากฟังก์ชันแรกเสร็จสิ้นให้ดูคำตอบของ stackoverflowนี้
เขียนโค้ดที่คุณต้องการให้ดำเนินการภายในนี้ เมื่อเอกสารของคุณพร้อมสิ่งนี้จะถูกดำเนินการ
$(document).ready(function() {
});