मुझे एक समस्या आ रही है जहाँ पृष्ठ इतनी तेज़ी से लोड हो रहा है, कि jquery ने बाद की स्क्रिप्ट द्वारा कॉल किए जाने से पहले लोडिंग समाप्त नहीं की है। क्या वहाँ एक रास्ता है जो कि अस्तित्व के लिए जाँच करता है और अगर यह मौजूद नहीं है, तो एक पल के लिए रुकें और फिर दोबारा कोशिश करें।
नीचे दिए गए उत्तर / टिप्पणियों के जवाब में, मैं कुछ मार्कअप पोस्ट कर रहा हूं।
स्थिति ... asp.net मास्टरपेज और चाइल्डपेज।
मास्टरपेज में, मेरे पास jquery का संदर्भ है। फिर सामग्री पृष्ठ में, मेरे पास पृष्ठ-विशिष्ट स्क्रिप्ट का संदर्भ है। जब पृष्ठ विशिष्ट स्क्रिप्ट लोड किया जा रहा है, तो यह शिकायत करता है कि "$ अपरिभाषित है"।
मैं मार्कअप में कई बिंदुओं पर अलर्ट डालता हूं ताकि उस क्रम को देखा जा सके जिसमें चीजें फायरिंग कर रही थीं, और पुष्टि की कि यह इस क्रम में फायर करता है:
- मास्टर पेज हैडर।
- चाइल्ड पेज कंटेंट ब्लॉक 1 (मास्टरपेज के सिर के अंदर स्थित है, लेकिन मास्टरपेज स्क्रिप्ट के बाद कहा जाता है)।
- बाल पृष्ठ सामग्री ब्लॉक 2।
यहाँ मुख्य पृष्ठ के शीर्ष पर मार्कअप है:
<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site.master.cs" Inherits="SiteMaster" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>Reporting Portal</title>
<link href="~/Styles/site.css" rel="stylesheet" type="text/css" />
<link href="~/Styles/red/red.css" rel="stylesheet" type="text/css" />
<script type="text/Scripts" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script type="text/Scripts" language="javascript" src="../Scripts/jquery.dropdownPlain.js"></script>
<script type="text/Scripts" language="javascript" src="../Scripts/facebox.js"></script>
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
<asp:ContentPlaceHolder ID="head" runat="server">
</asp:ContentPlaceHolder>
</head>
फिर मुख्यपृष्ठ के मुख्य भाग में, एक अतिरिक्त ContentPlaceHolder है:
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
बाल पृष्ठ में, ऐसा दिखता है:
<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Dashboard.aspx.cs" Inherits="Data.Dashboard" %>
<%@ Register src="../userControls/ucDropdownMenu.ascx" tagname="ucDropdownMenu" tagprefix="uc1" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
<link rel="stylesheet" type="text/css" href="../Styles/paserMap.css" />
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
***CONTENT HERE***
<script src="../Scripts/Dashboard.js" type="text/javascript"></script>
</asp:Content>
यहाँ "../Script/Dashboard.js" फ़ाइल की सामग्री है:
$(document).ready(function () {
$('.tgl:first').show(); // Show the first div
//Description: East panel parent tab navigation
$('.tabNav label').click(function () {
$('.tabNav li').removeClass('active')
$(this).parent().addClass('active');
var index = $(this).parent('li').index();
var divToggle = $('.ui-layout-content').children('div.tgl');
//hide all subToggle divs
divToggle.hide();
divToggle.eq(index).show();
});
});
<script src="...">टैग के साथ स्क्रिप्ट लोड कर रहे हैं , तो ऐसा नहीं हो सकता। क्या आप आवश्यकता या LABJs जैसी किसी चीज़ का उपयोग कर रहे हैं?
$(document).ready()या $(window).load()? क्या हम एक उदाहरण देख सकते हैं?
type="text/Scripts"करने के लिए type="text/javascript", या सभी को एक साथ यह अब कोई आवश्यकता नहीं है यह से छुटकारा पाने के, यह भी से छुटकारा पाने के language="javascript। साथ ही चीजों को आजमाना शुरू कर सकते हैं।
$(document).ready(function(){...});?