JQuery - $ ไม่ได้กำหนดไว้


486

ฉันมี jQuery click ง่ายๆ

<script type="text/javascript">
    $(function() {
        $('#post').click(function() {
            alert("test"); 
        });
    });
</script>

และการอ้างอิง jquery ที่กำหนดไว้ใน site.master

<script src="<%=ResolveUrl("~/Scripts/jquery-1.3.2.js")%>" type="text/javascript"></script>

ฉันตรวจสอบแล้วว่าสคริปต์นั้นได้รับการแก้ไขอย่างถูกต้องฉันสามารถเห็นมาร์กอัปและดูสคริปต์โดยตรงใน firebug ดังนั้นฉันจะต้องพบ อย่างไรก็ตามฉันยังคงได้รับ:

$ ไม่ได้กำหนดไว้

และไม่มีการทำงาน jquery ฉันได้ลองใช้รูปแบบต่างๆเช่น $ (เอกสาร) .ready และ jQuery เป็นต้น

มันเป็นแอป MVC 2 บน. net 3.5 ฉันแน่ใจว่าฉันหนาแน่นจริง ๆ ทุกที่ใน google บอกว่าตรวจสอบไฟล์ที่อ้างอิงอย่างถูกต้องซึ่งฉันได้ตรวจสอบและตรวจสอบอีกครั้งโปรดแนะนำ! : /


6
คุณเห็น jquery-1.3.2.js ถามจริงและโหลดด้วยรหัสตอบกลับ HTTP200 หรือไม่หากคุณตรวจสอบการโหลดหน้าเว็บด้วยเครื่องมือ Fiddler
ไร้เดียงสา

18
สคริปต์ของคุณทำงานก่อน jquery หรือไม่
Surya

2
คุณสามารถดูแหล่งที่มาและคลิกที่ลิงค์ js ดูเหมือนว่า jquery ของคุณไม่ได้โหลดบนหน้าเว็บ ลองหน้าจอ Firebug Console เพื่อดูข้อผิดพลาดลองajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.jsในแท็กสคริปต์ของคุณ
nemke

2
สคริปต์ของคุณเริ่มทำงานก่อนโหลดซอร์ส jquery หรือไม่
Dave Bacher

1
@ Surya / Dave ฉันกลับบ้านแล้วดังนั้นฉันจะตรวจสอบอีกครั้งในวันพรุ่งนี้และกลับมาและโพสต์ แต่ฉันคิดว่าน่าจะเป็นปัญหา: / น่าอายมาก!
Paul Creasey

คำตอบ:


560

ข้อผิดพลาดนั้นอาจเกิดจากหนึ่งในสามสิ่งเท่านั้น:

  1. ไฟล์ JavaScript ของคุณโหลดไม่ถูกต้องในหน้าของคุณ
  2. คุณมี jQuery เวอร์ชันไม่เรียบร้อย สิ่งนี้อาจเกิดขึ้นเพราะมีคนแก้ไขไฟล์หลักหรือปลั๊กอินอาจเขียนทับตัวแปร $
  3. คุณเปิดใช้งาน JavaScript ก่อนที่หน้าจะเต็มและก่อนที่จะโหลด jQuery

ก่อนอื่นตรวจสอบให้แน่ใจว่าสคริปต์ใดมีการโทรอย่างถูกต้องควรมีลักษณะดังนี้

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>

และไม่ควรมีแอตทริบิวต์asyncหรือDefer

จากนั้นคุณควรตรวจสอบพาเนลFirebug netเพื่อดูว่าไฟล์ถูกโหลดอย่างถูกต้องหรือไม่ หากไม่เป็นเช่นนั้นจะมีการเน้นสีแดงและจะพูดว่า "404" ด้านข้าง หากไฟล์กำลังโหลดอย่างถูกต้องนั่นหมายความว่าปัญหาคือหมายเลข 2

ตรวจสอบให้แน่ใจว่าโค้ด javery javery ทั้งหมดทำงานอยู่ในบล็อคโค้ดเช่น:

$(document).ready(function () {
  //your code here
});

เพื่อให้แน่ใจว่ารหัสของคุณจะถูกโหลดหลังจาก jQuery ได้รับการเริ่มต้น

สิ่งสุดท้ายที่ต้องตรวจสอบคือตรวจสอบให้แน่ใจว่าคุณไม่ได้โหลดปลั๊กอินใด ๆก่อนที่จะโหลด jQuery ปลั๊กอินขยายวัตถุ "$" ดังนั้นหากคุณโหลดปลั๊กอินก่อนที่จะโหลด jQuery core คุณจะได้รับข้อผิดพลาดที่คุณอธิบาย

หมายเหตุ:หากคุณกำลังโหลดรหัสซึ่งไม่ต้องการให้ jQuery เรียกใช้ไม่จำเป็นต้องวางไว้ในตัวจัดการพร้อม jQuery document.readyStateรหัสที่อาจจะแยกออกจากกันโดยใช้


182
เกี่ยวกับการบล็อกรหัสของคุณ$(document)จะไม่ทำงานอย่างใดอย่างหนึ่งจนกว่าคุณจะมีแท็กสคริปต์รวมถึง jQuery ก่อนคำสั่งนั้น ...
PatrikAkerstrand

3
ฉันต้องการเพิ่มว่าฉันมีปัญหาเดียวกับ OP และปัญหาของฉันคือการใช้ https กับไลบรารี่ของ jquery นั้นใช้งานไม่ได้
Mike Cheel

20
(ฟังก์ชั่น ($) {}) (jQuery);
JackMahoney

2
@Patrik: ดูคำตอบของฉันสำหรับวิธีการแก้ปัญหาโดยใช้ส่วนสคริปต์ในมุมมอง วิธีนี้จะโหลด jquery ก่อนและกำหนด $ อย่างเหมาะสม
angularsen

1
ตรวจสอบว่าคุณมี async ในสคริปต์เช่นกันนั่นคือสิ่งที่ทำให้เกิดปัญหาในกรณีของฉัน
Anders

207

อาจเป็นไปได้ว่าคุณมีแท็กสคริปต์ของคุณถูกเรียกก่อนที่สคริปต์ jquery จะถูกเรียกใช้

<script type="text/javascript" src="js/script.js"></script>

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>

ผลลัพธ์นี้เป็น $ ไม่ได้กำหนดไว้

ใส่ jquery.js หน้าแท็กสคริปต์ของคุณและมันจะทำงาน;) เช่น:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>

<script type="text/javascript" src="js/script.js"></script>

1
นี่คือการตอบสนองที่ดี ฉันลองแล้วมันก็ใช้ได้ผลสำหรับฉัน ฉันใช้ VS 2013 และ ASP.net คุณรู้หรือไม่ว่าฉันจะทำการโหลด javascript ก่อนที่หน้าจะโหลดโดยอัตโนมัติใน asp.net หรือฉันต้องอ้างอิงจาวาสคริปต์ด้วยวิธีนี้ในไฟล์ทั้งหมดของฉัน
Pat

เพื่อเพิ่มคำตอบของคุณ ใน ASP.net คุณสามารถเข้าสู่ Shared_Layout.cshtml `<head> </head>`
Pat

@pat และตรวจสอบให้แน่ใจว่าคุณเขียนรหัสของคุณไว้ใน@section Scriptsแท็ก
Marc

โปรดอัปเดตคำตอบเพื่อใช้ HTTPS และพิจารณาการใช้ SPI devdocs.io/html/attributes#integrity-attribute
Josh Habdas

65

ก่อนอื่นคุณต้องแน่ใจว่าโหลดสคริปต์ jQuery ซึ่งอาจมาจาก CDN หรือท้องถิ่นบนเว็บไซต์ของคุณ หากคุณไม่ได้โหลดสิ่งนี้ก่อนที่จะพยายามใช้ jQuery มันจะบอกคุณว่า jQuery ไม่ได้ถูกกำหนดไว้

<script src="jquery.min.js"></script>

สิ่งนี้อาจอยู่ในส่วนหัวหรือส่วนท้ายของหน้าเว็บโปรดตรวจสอบให้แน่ใจว่าคุณโหลดก่อนที่จะลองเรียกสิ่ง jQuery อื่น ๆ

จากนั้นคุณต้องใช้หนึ่งในสองวิธีด้านล่าง

(function($){
// your standard jquery code goes here with $ prefix
// best used inside a page with inline code, 
// or outside the document ready, enter code here
 })(jQuery); 

หรือ

jQuery(document).ready(function($){
// standard on load code goes here with $ prefix
// note: the $ is setup inside the anonymous function of the ready command
});

โปรดทราบว่า$ (เอกสาร). ready (function () {// code here}) หลายครั้ง; จะไม่ทำงาน.


1
"ไม่ได้กำหนด jQuery" มันมีอยู่หลังจากการโหลดหน้าเว็บ
Paul Totzke

ไม่แน่ใจว่านี่เป็นคำถามหรือคำสั่ง แต่ฉันจะตรวจสอบว่าคุณโทรหาสคริปต์ jQuery ก่อนที่จะลองใช้หรือไม่ ดูเหมือนว่าคุณกำลังโหลดในส่วนท้ายและเรียกสิ่งที่สูงขึ้นหน้า
Andrew Killen

ขออภัยฉันคิดว่านี่เป็นเทคนิคที่คุณสามารถใช้สคริปต์ในลำดับใดก็ได้ ใช่ฉันใช้สิ่งนี้ในส่วนเนื้อหาในรูปแบบ MVC mycode.js ดังนั้น jQuery.js เป็น 2 สิ่งสุดท้ายบนหน้าเว็บ
Paul Totzke

ไม่ต้องกังวล Paul ฉันได้แก้ไขวิธีการรวม 'คุณต้อง ... โหลดก่อน' :)
Andrew Killen

สิ่งนี้แก้ไขปัญหาของ "สคริปต์ของฉันอยู่ในลำดับที่ถูกต้อง แต่สคริปต์โหลดตามลำดับอื่น" ฉันจำได้ว่าทำสิ่งนี้เมื่อ 4 ปีที่แล้ว แต่ฉันจำไม่ได้ว่ามันแก้ปัญหาอะไร
Paul Totzke

50

หากการเรียกปลั๊กอิน jQuery อยู่ถัดจาก</body>และสคริปต์ของคุณโหลดก่อนหน้านั้นคุณควรทำให้โค้ดของคุณทำงานหลังจากwindow.onloadเหตุการณ์เช่นนี้:

window.onload = function() {
  //YOUR JQUERY CODE
}

`

ดังนั้นรหัสของคุณจะทำงานหลังจากโหลดหน้าต่างเมื่อสินทรัพย์ทั้งหมดได้รับการโหลด ในจุดนั้น jQuery ( $) จะถูกกำหนด

หากคุณใช้สิ่งนั้น:

$(document).ready(function () {
  //YOUR JQUERY CODE
});

`

$ยังไม่ได้กำหนดไว้ในเวลานี้เพราะมันถูกเรียกว่าก่อนที่จะมีการโหลด jQuery และสคริปต์ของคุณจะล้มเหลวในการที่บรรทัดแรกบนคอนโซล


โดยทั่วไปแล้วเป็นความคิดที่ดีที่จะผูกเข้ากับ window.unload มันจะเป็นเหตุการณ์เดียวที่ทำงานได้อย่างมีประสิทธิภาพ !!!
Rudi Strydom

หมายเหตุ: จำไว้ว่าคุณสามารถกำหนดได้หนึ่งหน้าต่างเท่านั้นฟังก์ชั่นโหลดหากคุณกำหนดฟังก์ชั่นอื่นให้กับมันก่อนหน้านี้จะไม่ถูกดำเนินการ
Bruno Peres

28

ฉันเพิ่งทำสิ่งเดียวกันและพบว่าฉันมีจำนวนมากทั้ง

type="text/javacsript"

ดังนั้นพวกเขาจึงกำลังโหลด แต่ไม่มีคำใบ้เพิ่มเติมว่าทำไมมันไม่ทำงาน จำเป็นต้องพูดการสะกดที่เหมาะสมแก้ไขได้


ผู้ดำเนินรายการหมายเหตุ : พิมพ์ผิดในโพสต์นี้มีเจตนาเพื่อแสดงให้เห็นถึงจุด โปรดอย่าแก้ไขโพสต์เพื่อ“ แก้ไข” สิ่งนี้
Martijn Pieters

23

ใช้ส่วนสคริปต์ในมุมมองและเค้าโครงต้นแบบ

ใส่สคริปต์ทั้งหมดของคุณที่กำหนดไว้ในมุมมองของคุณภายในส่วนสคริปต์ของมุมมอง วิธีนี้คุณสามารถโหลดเค้าโครงต้นแบบได้หลังจากโหลดสคริปต์อื่นทั้งหมดแล้ว นี่เป็นการตั้งค่าเริ่มต้นเมื่อเริ่มต้นโครงการเว็บ MVC5 ใหม่ ไม่แน่ใจเกี่ยวกับรุ่นก่อนหน้า

ชม / Foo / MyView.cshtml:

// The rest of your view code above here.

@section Scripts 
{ 
    // Either render the bundle defined with same name in BundleConfig.cs...
    @Scripts.Render("~/bundles/myCustomBundle")

    // ...or hard code the HTML.
    <script src="URL-TO-CUSTOM-JS-FILE"></script>

    <script type="text/javascript">
      $(document).ready(function () {

        // Do your custom javascript for this view here. Will be run after 
        // loading all the other scripts.            
      });
    </script>
}

ชม / ร่วมกัน / _Layout.cshtml

<html>
<body>
    <!-- ... Rest of your layout file here ... -->

    @Scripts.Render("~/bundles/jquery")
    @Scripts.Render("~/bundles/bootstrap")
    @RenderSection("scripts", required: false)
</body>
</html>

โปรดสังเกตว่าส่วนของสคริปต์ถูกเรนเดอร์ล่าสุดอย่างไรในไฟล์เลย์เอาต์ต้นแบบ


2
หมายเหตุ: ส่วนมุมมองไม่ได้รับการสนับสนุนในมุมมองบางส่วนโดยการออกแบบ
Adam Naylor

นี่คือสิ่งที่ฉันต้องทำเพื่อการแก้ไขของฉัน .... และฉันควรจะรู้จักดีกว่าที่จะใช้ @Scripts ในตอนแรก แต่ลืมไปเลยจนกว่าฉันจะหาวิธีแก้ไข
Caverman

12

ตรวจสอบให้แน่ใจว่าคุณโหลด jquery จริงๆนี่ไม่ใช่ jquery - เป็น UI!

  <script language="JavaScript" 
    src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.0/jquery-ui.min.js">
  </script>

นี่เป็นแหล่งสคริปต์ที่ถูกต้องสำหรับ jquery:

 <script language="JavaScript"  src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>

11

ตามที่ระบุไว้ข้างต้นมันเกิดขึ้นเนื่องจากความขัดแย้งของ $ ตัวแปร

ฉันแก้ไขปัญหานี้โดยการจองตัวแปรรองสำหรับ jQuery โดยไม่มีข้อขัดแย้ง

var $j = jQuery.noConflict();

แล้วใช้งานได้ทุกที่

$j( "div" ).hide();

รายละเอียดเพิ่มเติมสามารถดูได้ที่นี่


8

หมายความว่าไลบรารี jQuery ของคุณยังไม่ได้โหลด

คุณสามารถย้ายรหัสของคุณหลังจากดึงไลบรารี jQuery

หรือคุณสามารถใช้สิ่งนี้

window.onload = function(){
  // Your code here
};  

สิ่งนี้จะเกิดขึ้นหลังจากที่โหลด DOM แต่ไม่ใช่เมื่อโหลดตัวควบคุมจาวาสคริปต์และโปรแกรมอื่น ๆ ที่ทำงานในพื้นหลังได้โหลดแล้ว ต้องใช้การหน่วงเวลาเพื่อให้สิ่งนี้ทำงานได้
Fandango68


5

หลังจากการทดสอบบางอย่างที่ฉันพบวิธีแก้ปัญหาอย่างรวดเร็วคุณสามารถเพิ่มด้านบนของหน้าดัชนีของคุณ:

<script>
$=jQuery;
</script>

มันทำงานได้ดีมาก :)


4
คำถามคือ: $ ไม่ได้กำหนดไม่?
Mimouni

Uncaught ReferenceError: jQuery ไม่ได้ถูกกำหนด
Simon Schnell

คุณวางไว้ใต้การนำเข้า jQuery Library หรือไม่
Mike Warren

4

ฉันได้รับข้อความแสดงข้อผิดพลาดเดียวกันเมื่อฉันสะกดผิดการอ้างอิง jQuery และแทนที่จะtype="text/javascript"พิมพ์ "... javascirpt" ;)


ยูเรก้า! type="text/css"ผมมีเหมืองเป็น ขอขอบคุณที่ช่วยรักษาสติของฉัน!
Jeriko

ฉัน goofed type="javascript"และมี เสียเวลาค้นหา 30 นาที
เมสัน

4

ดูเหมือนว่า jQuery โหลดไม่ถูกต้อง คุณใช้แหล่งที่มา / รุ่นใด

หรือมิฉะนั้นก็อาจชน BE namespace จึงพยายามใช้ jQuery $อย่างชัดเจนแทนการใช้ หากใช้งานได้คุณอาจต้องการใช้noConflictเพื่อให้แน่ใจว่ารหัสอื่นที่ใช้งานอยู่$จะไม่หยุดทำงาน


3

ข้อผิดพลาดนั้นหมายความว่า jQuery ยังไม่ได้โหลดบนหน้า การใช้$(document).ready(...)หรือตัวแปรใด ๆ ของสิ่งนั้นจะไม่ดีเช่นเดียว$กับฟังก์ชัน jQuery

window.onloadควรใช้ที่นี่ โปรดทราบว่าสามารถกำหนดได้เพียงหนึ่งฟังก์ชันwindow.onloadเท่านั้น เพื่อหลีกเลี่ยงการสูญเสียตรรกะ onload ดั้งเดิมคุณสามารถตกแต่งฟังก์ชั่นดั้งเดิมดังนี้:

originalOnload = window.onload;
window.onload = function() {
  if (originalOnload) {
    originalOnload();
  }
  // YOUR JQUERY
};

ซึ่งจะดำเนินการฟังก์ชั่นที่ได้รับมอบหมายให้และจากนั้นจะดำเนินการwindow.onload// YOUR JQUERY

ดูhttps://en.wikipedia.org/wiki/Decorator_patternสำหรับรายละเอียดเพิ่มเติมเกี่ยวกับรูปแบบการตกแต่งภายใน



2

ในวิธีแก้ปัญหาจะกล่าวถึง - "สิ่งสุดท้ายที่ต้องตรวจสอบคือเพื่อให้แน่ใจว่าคุณไม่ได้โหลดปลั๊กอินใด ๆ ก่อนที่คุณจะโหลด jQuery ปลั๊กอินจะขยายวัตถุ" $ "ดังนั้นถ้าคุณโหลดปลั๊กอินก่อนที่จะโหลดแกน jQuery จะได้รับข้อผิดพลาดที่คุณอธิบาย "

สำหรับการหลีกเลี่ยงสิ่งนี้ -

ไลบรารี JavaScript จำนวนมากใช้ $ เป็นฟังก์ชันหรือชื่อตัวแปรเช่นเดียวกับ jQuery ในกรณีของ jQuery $ เป็นเพียงนามแฝงสำหรับ jQuery ดังนั้นฟังก์ชันทั้งหมดจึงใช้ได้โดยไม่ต้องใช้ $ หากเราจำเป็นต้องใช้ไลบรารี JavaScript อื่นร่วมกับ jQuery เราสามารถคืนการควบคุม $ กลับไปยังไลบรารีอื่นด้วยการเรียกใช้ $ .noConflict ():


1

ฉันมีปัญหานี้เพียงครั้งเดียวโดยไม่มีเหตุผลที่ชัดเจน มันเกิดขึ้นในพื้นที่ขณะที่ฉันกำลังทำงานผ่านเซิร์ฟเวอร์พัฒนา aspnet มันใช้งานได้และฉันเปลี่ยนกลับเป็นสถานะที่เคยใช้มาก่อนและก็ยังใช้งานไม่ได้ ฉันดูในตัวแก้ไขข้อบกพร่องโครมและ jquery-1.7.1.min.js โหลดโดยไม่มีปัญหาใด ๆ มันสับสนมาก ฉันยังไม่รู้ว่าปัญหาคืออะไร แต่ปิดเบราว์เซอร์ปิดเซิร์ฟเวอร์การพัฒนาแล้วลองแยกออกอีกครั้ง


1

เพียงวาง jquery url ที่ด้านบนของรหัส jquery ของคุณ

แบบนี้--

<script src="<%=ResolveUrl("~/Scripts/jquery-1.3.2.js")%>" type="text/javascript"></script>

<script type="text/javascript">
    $(function() {
        $('#post').click(function() {
            alert("test"); 
        });
    });
</script>

1

ฉันมีปัญหาเดียวกันและเป็นเพราะการอ้างอิงถึง jQuery.js ไม่ได้อยู่ในแท็ก เมื่อฉันเปลี่ยนมันทุกอย่างก็เริ่มทำงาน

แอนโทนี่


1
  1. ตรวจสอบเส้นทางที่แน่นอนของไฟล์ jquery ของคุณ

    <script src="assets/plugins/jquery/jquery.min.js"></script>

หากคุณเพิ่มสิ่งนี้ไว้ที่ด้านล่างของหน้าโปรดเรียกฟังก์ชัน JS ทั้งหมดข้างล่างประกาศนี้

  1. ตรวจสอบโดยใช้การทดสอบรหัสนี้

    <script type="text/javascript">
    /***
     * Created by dadenew
     * Submit email subscription using ajax
     * Send email address
     * Send controller
     * Recive response
     */
    $(document).ready(function() { //you can replace $ with Jquery
    
      alert( 'jquery working~!' );
    });

สันติภาพ!


0

เรามีปัญหาเดียวกัน .... แต่ฉันบังเอิญตรวจสอบคุณสมบัติของโฟลเดอร์และตั้งค่าบางอย่าง ...

คุณต้องตรวจสอบคุณสมบัติของแต่ละโฟลเดอร์ที่คุณเข้าถึง ..

  1. คลิกขวาที่โฟลเดอร์
  2. แท็บ 'การอนุญาต'
  3. ตั้งค่าการเข้าถึงโฟลเดอร์: OWNER: สร้างและลบไฟล์ GROUP: เข้าถึงไฟล์ OTHERS: เข้าถึงไฟล์

ฉันหวังว่านี่จะเป็นทางออก ......


0

เมื่อใช้ jQuery ใน asp.net หากคุณกำลังใช้หน้าต้นแบบและคุณกำลังโหลดไฟล์ต้นฉบับ jquery ที่นั่นตรวจสอบให้แน่ใจว่าคุณมีส่วนหัวของเนื้อหาที่อยู่หลังจากการอ้างอิงสคริปต์ jquery ทั้งหมด

ฉันมีปัญหาที่หน้าใด ๆ ที่ใช้หน้าต้นแบบนั้นจะคืนค่า '$ ไม่ได้กำหนด' เพียงเพราะลำดับที่ไม่ถูกต้องทำให้โค้ดฝั่งไคลเอ็นต์ทำงานก่อนที่จะสร้างวัตถุ jquery ดังนั้นให้แน่ใจว่าคุณมี:

<head runat="server">
    <script type="text/javascript" src="Scripts/jquery-VERSION#.js"></script>
    <asp:ContentPlaceHolder id="Header" runat="server"></asp:ContentPlaceHolder>
</head>

วิธีนั้นรหัสจะทำงานตามลำดับและคุณจะสามารถเรียกใช้รหัส jQuery บนหน้าย่อย


0

ในกรณีของฉันฉันชี้ไปที่ Google โฮสต์ JQuery มันรวมอย่างถูกต้อง แต่ฉันอยู่ในหน้า HTTPS และเรียกมันผ่านทาง HTTP เมื่อฉันแก้ไขปัญหา (หรือได้รับอนุญาตเนื้อหาที่ไม่ปลอดภัย) มันจะเริ่มทำงานทันที


0

ฉันมีปัญหาเดียวกันนี้และไม่สามารถหาสาเหตุที่ทำให้เกิดปัญหาได้ ฉันเพิ่งแปลงไฟล์ HTML ของฉันจากภาษาญี่ปุ่นเป็น UTF-8 แต่ฉันไม่ได้ทำอะไรกับไฟล์สคริปต์ อย่างใด jquery-1.10.2.min.js เกิดความเสียหายในกระบวนการนี้ (ฉันยังไม่รู้เลยว่า) แทนที่ jquery-1.10.2.min.js ด้วยต้นฉบับคงที่


0

ปรากฏว่าหากคุณค้นหาไฟล์ jquery.js ของคุณภายใต้โฟลเดอร์เดียวกันหรือในบางโฟลเดอร์ย่อยที่ไฟล์ html ของคุณอยู่ปัญหา Firebug จะได้รับการแก้ไข เช่นหาก html ของคุณอยู่ภายใต้ C: / folder1 / ดังนั้นไฟล์ js ของคุณควรอยู่ใต้ C: / folder1 / (หรือ C: / folder1 / folder2 ฯลฯ ) เช่นกันและแก้ไขตามในเอกสาร html หวังว่านี่จะช่วยได้


0

ฉันมีปัญหาเดียวกันและไม่มีกรณีแก้ไขปัญหาให้ฉัน สิ่งเดียวที่ใช้ได้ผลสำหรับฉันมันอยู่ที่ไฟล์ Site.master ถัดไป:

<script src="<%= ResolveUrl("~/Scripts/jquery-1.7.1.min.js") %>" type="text/javascript"></script>
<script src="<%= ResolveUrl("~/Scripts/bootstrap/js/bootstrap.min.js") %>" type="text/javascript"></script>

ด้วย src = "<% = ResolveUrl (" ") ... โหลดของ jQuery ในหน้าเนื้อหาถูกต้อง


0

ฉันมีปัญหาที่คล้ายกันมาก ในแอปพลิเคชัน C # MVC ของฉัน JQuery ไม่ได้รับการยอมรับ ฉันต้องการย้าย @ Scripts.Render ("~ / bundles / jquery") จากด้านล่างของไฟล์ _Layout.cshtml ของฉันไปที่ส่วนหัวของส่วน นอกจากนี้ให้แน่ใจว่าคุณได้คว้า Jquery เป็นแพ็คเกจ Nuget หากคุณใช้ visual studio!

<head>
    @Scripts.Render("~/bundles/jquery")
</head>

0

มีวิธีทำให้โหลด javascript โดยอัตโนมัติก่อนที่รหัสที่เหลือจะทำงาน

ไปที่ Views \ Shared_Layout.html และเพิ่มรายการต่อไปนี้

<head>
  <*@ Omitted code*@>
  <script src="~/Scripts/jquery-1.10.2.min.js" type="text/javascript"></script>
</head>

0

หากscriptแท็กมีdeferคุณสมบัติมันแสดงข้อผิดพลาด

Uncaught ReferenceError: $ ไม่ได้ถูกกำหนดไว้

และต้องลบแอตทริบิวต์deferออกจากscriptแท็ก


0

นี่เป็นปัญหาทั่วไปในการแก้ไขปัญหานี้คุณต้องตรวจสอบบางจุด

  1. รวมถึงห้องสมุด Jquery หลัก
  2. ตรวจสอบปัญหาเบราว์เซอร์ข้าม
  3. เพิ่ม Library ที่ด้านบนของรหัส jquery
  4. ตรวจสอบ CDN อาจถูกบล็อก

รายละเอียดทั้งหมดได้ในบล็อกนี้คลิกที่นี่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.