Jquery कोड AFTER पेज लोडिंग कैसे करें?


85

यदि आप अपने पृष्ठ पर काम करने के लिए कोई घटना चाहते हैं, तो आपको इसे $ (दस्तावेज़) .ready () फ़ंक्शन के अंदर कॉल करना चाहिए। जैसे ही डोम लोड किया जाता है और पृष्ठ सामग्री लोड होने से पहले उसके अंदर सब कुछ लोड हो जाएगा ।

मैं पेज कोड लोड होने के बाद ही जावास्क्रिप्ट कोड करना चाहता हूं, मैं यह कैसे कर सकता हूं?

जवाबों:


168

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/06/jquery-3-0-final-released/ के अनुसार :

हटाए गए इवेंट एलियासेस को हटा दिया गया

.load, .unloadऔर .error, jQuery 1.8 के बाद से पदावनत, अब और नहीं हैं। .on()श्रोताओं को पंजीकृत करने के लिए उपयोग करें ।

https://github.com/jquery/jquery/issues/2286


1
इस उत्तर पर टिप्पणी से: stackoverflow.com/a/37817516/957246 $ (विंडो) .on ("लोड", फ़ंक्शन () {// कोड यहाँ}); ..क्योंकि ".लोड" पदावनत है।
ट्रैपर_हाग

.on का उपयोग करते हुए () यह बहुत स्पष्ट है .. लेकिन मैंने इसे खोजने से पहले दीवार के खिलाफ अपना सिर खटखटाते हुए 1h खर्च किया .. धन्यवाद ..!
घुआरो

2
$(document).on('load', ...इसे आज़माने की ग़लती के लिए देखें$(window).on('load',...
उपयोगकर्ता

29

निम्नलिखित

$(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.
  });
});

2
तैयार हैंडलर में लोड हैंडलर? यह पागलपन है। आपको उस बिंदु पर मौजूद दस्तावेज़ की आवश्यकता नहीं है क्योंकि उस बिंदु पर विंडो मौजूद है और आप इसके बिना हैंडलर संलग्न कर सकते हैं।
19

18

इसका उल्लेख किसी ने नहीं किया

$(function() {
    // place your code
});

जो एक आशुलिपि समारोह है

$(document).ready(function() { .. });

16

संपादित करें: यह कोड तब तक प्रतीक्षा करेगा जब तक कि सभी सामग्री (चित्र और स्क्रिप्ट) ब्राउज़र में पूरी तरह से लोड और रेंडर न हो जाएं।

मेरे पास यह समस्या है कि मैं जावास्क्रिप्ट$(window).on('load',function(){ ... }) के बाद से अपने कोड के लिए बहुत जल्दी कहां आग लगाऊंगा मैंने उपयोग किया था वह उद्देश्यों को छिपाने और तत्वों को छिपाने के लिए था। वे तत्व जहां बहुत जल्द छिपे होते हैं और जहां 0 की ऊंचाई के साथ छोड़ दिया जाता है।

मैं अब उपयोग करता हूं $(window).on('pageshow',function(){ //code here });और यह उस समय फायर करता है जब मुझे जरूरत होती है।


1
इसने मेरी भी मदद की, मैं वास्तव में jQuery के मोबाइल पेज प्रदर्शित होने के बाद कुछ कोड चलाना चाहता था। धन्यवाद। @ बोयड सीर
कोडेडुडी

बस यह जोड़ना चाहता था कि स्वीकृत उत्तर की तुलना में यह कोड कितना अधिक सहायक है। बहुत बहुत धन्यवाद।
काउंट्ज़ेरो सेप

10

आप इस तरह से '$' में अपरिभाषित होने से बच सकते हैं

window.addEventListener("DOMContentLoaded", function(){
    // Your code
});

संपादित करें: 'DOMContentLoaded' का उपयोग करना केवल 'लोड' की तुलना में तेज़ है क्योंकि लोड प्रतीक्षा पृष्ठ पूरी तरह से लोड होता है, इसमें शामिल हैं ... जबकि DOMContentLoaded केवल संरचना की प्रतीक्षा करता है


8

मैं उसी समस्या की तलाश कर रहा हूं और यहां वह है जो मेरी मदद करता है। यहां jQuery संस्करण 3.1.0 है और लोड घटना jQuery संस्करण 1.8 के बाद से उपयोग के लिए पदावनत है । लोड घटना jQuery 3.0 से निकाल दी जाती है। इसके बजाय, आप विधि का उपयोग कर सकते हैं और जावास्क्रिप्ट लोड घटना को बांध सकते हैं:

$(window).on('load', function () {
  alert("Window Loaded");
});


5

उस कोड को लिखें जिसे आप इसके अंदर निष्पादित करना चाहते हैं। जब आपका दस्तावेज़ तैयार हो जाएगा, तो इसे निष्पादित किया जाएगा।

$(document).ready(function() { 

});
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.