2010-10-14 50 views
32

Tôi có jQuery tải tốt, tôi đã kiểm tra gấp bốn lần, mặc dù tôi nhận được lỗi này trong FireBug "$ không phải là một chức năng" và mã của tôi không hoạt động.

Dưới đây là mã của tôi:

<script type="text/javascript"> 
    $("ol li:nth-child(1)").addClass('olli1'); 
    $("ol li:nth-child(2)").addClass("olli2"); 
    $("ol li:nth-child(3)").addClass("olli3"); 
    $("ol li:nth-child(4)").addClass("olli4"); 
    $("ol li:nth-child(5)").addClass("olli5"); 
    $("ol li:nth-child(6)").addClass("olli6"); 
    $("ol li:nth-child(7)").addClass("olli7"); 
    $("ol li:nth-child(8)").addClass("olli8"); 
    $("ol li:nth-child(9)").addClass("olli9"); 
    $("ol li:nth-child(10)").addClass("olli10"); 
    $("ol li:nth-child(11)").addClass("olli11"); 
    $("ol li:nth-child(12)").addClass("olli12"); 
    $("ol li:nth-child(13)").addClass("olli13"); 
    $("ol li:nth-child(14)").addClass("olli14"); 
    $("ol li:nth-child(15)").addClass("olli15"); 
    $("ol li:nth-child(16)").addClass("olli16"); 
    $("ol li:nth-child(17)").addClass("olli17"); 
    $("ol li:nth-child(18)").addClass("olli18"); 
    $("ol li:nth-child(19)").addClass("olli19"); 
    $("ol li:nth-child(20)").addClass("olli20"); 
</script> 
+0

nơi là mã, liên quan đến khi bạn l oad các kịch bản jQuery? – RPM1984

+2

Bạn có thể xác nhận trong firebug rằng jquery được tải không? Bạn có thể hiển thị 'đầu' của bạn không? –

+0

jQuery được tải trong tiêu đề và tập lệnh này ở chân trang, vì vậy đây không phải là vấn đề – Alex

Trả lời

95

Trong Wordpress jQuery.noConflict() được gọi vào file jQuery nó bao gồm (cuộn xuống cuối của tập tin nó bao gồm cho jQuery để thấy điều này), có nghĩa $ không hoạt động, nhưng jQuery có, do đó, mã của bạn nên giống như thế này:

<script type="text/javascript"> 
    jQuery(function($) { 
    for(var i=0; i <= 20; i++) 
     $("ol li:nth-child(" + i + ")").addClass('olli' + i); 
    }); 
</script> 
+0

Tôi đã thay thế mã của mình bằng mã này nhưng vẫn không hoạt động. Đây là trang http://www.softsailor.com/how-to/46957-how-to-use-greenpois0n-to-jailbreak-iphone-4-3gs-ipad-ipod-touch-ios-4-14- 0.html – Alex

+0

Cũng cảm ơn vì đã tối ưu hóa nó :) – Alex

+0

@Alex - Xem xét, noConflict chắc chắn là vấn đề của bạn với '$' ... xem nó trong jQuery của bạn bao gồm ở cuối: http://www.softsailor.com /wp-includes/js/jquery/jquery.js?ver=1.4.2, nhìn thấy những gì khác là sai bây giờ. –

3

Như RPM1984 đề cập đến, điều này chủ yếu có khả năng gây ra bởi thực tế là kịch bản của bạn đang tải trước jQuery được nạp.

+0

jQuery được tải trong tiêu đề và tập lệnh này ở chân trang, vì vậy đây không phải là vấn đề. – Alex

+1

cảm ơn, u đã lưu thời gian của tôi –

-3

Có hai lý do có thể cho lỗi rằng:

  1. jquery tập tin kịch bản tham khảo của bạn không hợp lệ
  2. cố gắng để đặt mã jquery của bạn trong document.ready, như thế này:

    $ (tài liệu) .ready (function() {

    .... mã của bạn ....

    });

cổ vũ

+0

jQuery được bao gồm tự động bởi Wordpress. Tôi đã thử nó và nó vẫn không hoạt động. – Alex

+1

Tôi không nghĩ việc sử dụng hoặc không sử dụng cấu trúc sẵn sàng của tài liệu sẽ tạo ra bất kỳ sự khác biệt nào ở đây. Ngoài ra, nếu '$' chưa được xác định, làm thế nào bạn có thể gọi $ (document.ready (...)? Xin lỗi, -1. – mkoistinen

+0

nó ok, tôi xứng đáng với nó;) chúc mừng – Marko

1

Đó đá lỗi trong khi bạn đã quên bao gồm các thư viện jQuery trong trang của bạn hoặc có mâu thuẫn giữa các thư viện - ví dụ bạn được sử dụng bất kỳ khác thư viện javascript trên trang của bạn.

Hãy xem này cho biết thêm:

0

Khi jQuery là không có mặt bạn nhận được $ is undefined và không tin nhắn của bạn.

Bạn có kiểm tra xem bạn không có biến số được gọi là $ đâu đó trước mã của bạn không?
Kiểm tra giá trị của $ trong firebug để xem nó là gì.

Hơi ra câu hỏi, nhưng tôi không thể cưỡng lại để viết một mã ngắn hơn để phân lớp của bạn:

var i = 1; 
    $("ol li").each(function(){ 
     $(this).addClass('olli' + i++); 
    }); 
19

Thật sự rất khó để nói, nhưng một trong những 9001 quảng cáo trên trang có thể clobbering đối tượng $.

jQuery cung cấp đối tượng jQuery toàn cầu (trong đó hiện diện trên trang của bạn). Bạn có thể làm như sau để "nhận" $ lại:

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

Nếu bạn nghĩ rằng bạn đang gặp vấn đề về jQuery, hãy sử dụng debug (phi sản xuất) phiên bản của thư viện.

Ngoài ra, có thể không tốt nhất là chỉnh sửa trang web trực tiếp như vậy ...

+0

Tuyệt vời! Cảm ơn nhiều! :) – joryl

0
<script type="text/javascript"> 
    $("ol li:nth-child(1)").addClass('olli1'); 
    $("ol li:nth-child(2)").addClass("olli2"); 
    $("ol li:nth-child(3)").addClass("olli3"); 
    $("ol li:nth-child(4)").addClass("olli4"); 
    $("ol li:nth-child(5)").addClass("olli5"); 
    $("ol li:nth-child(6)").addClass("olli6"); 
    $("ol li:nth-child(7)").addClass("olli7"); 
    $("ol li:nth-child(8)").addClass("olli8"); 
    $("ol li:nth-child(9)").addClass("olli9"); 
    $("ol li:nth-child(10)").addClass("olli10"); 
    $("ol li:nth-child(11)").addClass("olli11"); 
    $("ol li:nth-child(12)").addClass("olli12"); 
    $("ol li:nth-child(13)").addClass("olli13"); 
    $("ol li:nth-child(14)").addClass("olli14"); 
    $("ol li:nth-child(15)").addClass("olli15"); 
    $("ol li:nth-child(16)").addClass("olli16"); 
    $("ol li:nth-child(17)").addClass("olli17"); 
    $("ol li:nth-child(18)").addClass("olli18"); 
    $("ol li:nth-child(19)").addClass("olli19"); 
    $("ol li:nth-child(20)").addClass("olli20"); 
</script> 

thay đổi này để

<script type="text/javascript"> 
     jQuery(document).ready(function ($) { 
     $("ol li:nth-child(1)").addClass('olli1'); 
     $("ol li:nth-child(2)").addClass("olli2"); 
     $("ol li:nth-child(3)").addClass("olli3"); 
     $("ol li:nth-child(4)").addClass("olli4"); 
     $("ol li:nth-child(5)").addClass("olli5"); 
     $("ol li:nth-child(6)").addClass("olli6"); 
     $("ol li:nth-child(7)").addClass("olli7"); 
     $("ol li:nth-child(8)").addClass("olli8"); 
     $("ol li:nth-child(9)").addClass("olli9"); 
     $("ol li:nth-child(10)").addClass("olli10"); 
     $("ol li:nth-child(11)").addClass("olli11"); 
     $("ol li:nth-child(12)").addClass("olli12"); 
     $("ol li:nth-child(13)").addClass("olli13"); 
     $("ol li:nth-child(14)").addClass("olli14"); 
     $("ol li:nth-child(15)").addClass("olli15"); 
     $("ol li:nth-child(16)").addClass("olli16"); 
     $("ol li:nth-child(17)").addClass("olli17"); 
     $("ol li:nth-child(18)").addClass("olli18"); 
     $("ol li:nth-child(19)").addClass("olli19"); 
     $("ol li:nth-child(20)").addClass("olli20"); 
    }); 
    </script> 
Các vấn đề liên quan