2012-01-06 41 views
6

Tôi không thể tìm ra điều gì sai với mã của tôi ở đây. Tôi đang cố gắng tải jQuery động nếu nó không có mặt trên trang.Đang tải jQuery một cách nhanh chóng

<head> 
    <script> 
    (function() { 
     if (typeof jQuery != 'undefined') { 
     /* jQuery is already loaded... verify minimum version number of 1.4.2 and reload newer if needed */ 
     if (/1\.(0|1|2|3|4)\.(0|1)/.test(jQuery.fn.jquery) || /^1.1/.test(jQuery.fn.jquery) || /^1.2/.test(jQuery.fn.jquery)|| /^1.3/.test(jQuery.fn.jquery)) { 
     loadJQ(); 
     } 
     } else { 
      loadJQ(); 
     } 

    function loadJQ() { 
    /* adds a link to jQuery to the head, instead of inline, so it validates */ 
    var headElement = document.getElementsByTagName("head")[0]; 
    linkElement=document.createElement("script"); 
    linkElement.src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"; 
    linkElement.type="text/javascript"; 
    headElement.appendChild(linkElement); 
    //alert(headElement); 
    } 

    })(); 

    </script> 
</head> 

Đây là cơ thể của tôi.

<body> 
    <button>Click me</button> 
    <script type="text/javascript"> 
    $(document).ready(function(){ 
    alert("hello"); 
    $("button").click(function(){ 
    $(this).hide(); 
    }); 
    }); 
    </script> 
</body> 

Khi tôi đặt trang này vào trang html, tôi nhận được thông báo lỗi "$ không được xác định". Bất cứ ai có bất kỳ ý tưởng tại sao?

+0

Bởi vì jQuery đã không được nạp vào thời điểm '

2

"$ không được định nghĩa" Kết quả lỗi từ mã jQuery không được tải xuống vào thời điểm kịch bản cố gắng để thực thi.

Bạn có thể thử bằng cách sử dụng Script thuộc tính trì hoãn để trì hoãn việc thực hiện mã của bạn cho đến khi nó được nạp bằng cách thay đổi các thẻ script để

<script type="text/javascript" defer="defer"> 
Các vấn đề liên quan