Sayfanın o kadar hızlı yüklenmesiyle ilgili bir sorun yaşıyorum ki jquery, sonraki bir komut dosyası tarafından çağrılmadan önce yüklemeyi bitirmedi. JQuery varlığını kontrol etmenin bir yolu var mı ve yoksa, bir süre bekleyip tekrar deneyin mi?
Aşağıdaki cevaplara / yorumlara yanıt olarak, işaretlemelerin bir kısmını gönderiyorum.
Durum ... asp.net ana sayfası ve alt sayfası.
Ana sayfada jquery için bir referansım var. Daha sonra içerik sayfasında, sayfaya özel komut dosyasına bir referansım var. Sayfaya özgü komut dosyası yüklenirken "$ tanımsız" olduğundan şikayet eder.
Şeylerin ateşlenme sırasını görmek için işaretlemede birkaç noktaya uyarılar koydum ve şu sırayla ateşlendiğini onayladım:
- Ana sayfa başlığı.
- Alt sayfa içerik bloğu 1 (ana sayfanın başlığının içinde bulunur, ancak ana sayfa komut dosyaları çağrıldıktan sonra).
- Alt sayfa içerik bloğu 2.
İşte ana sayfanın üst kısmındaki işaretleme:
<%@ 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>
Daha sonra ana sayfanın gövdesinde ek bir ContentPlaceHolder bulunur:
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
Alt sayfada şöyle görünür:
<%@ 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" dosyasının içeriği şu şekildedir:
$(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="...">etiketlere sahip komut dosyaları yüklüyorsanız , bu gerçekleşemez. RequireJS veya LABjs gibi bir şey mi kullanıyorsunuz?
$(document).ready()veya içinde sonraki komut dosyasını mı çalıştırıyorsunuz $(window).load()? Bir örnek görebilir miyiz?
type="text/Scripts"için type="text/javascript"ya hep birlikte artık gerekli değil ondan kurtulmak, ayrıca kurtulmak language="javascript. Bir şeyler denemeye başlasan iyi olur.
$(document).ready(function(){...});musun