2009-09-07 32 views
7

Tôi thường sử dụng này trong jquery

$(document).ready(function() { 
    //stuff 
} 

Tôi chỉ trên một trang web có rất nhiều sử dụng jquery và họ gọi nó bằng cách sử

$j(document).ready(function() { 
    //stuff 
} 

Trên trang web này, họ bắt đầu hầu hết mọi thứ ra ngoài với một j .. .

function PostComment(form) { 
    form = $j(form); 
    $j('#CommentSubmitButton').hide(); 
    $j('#CommentInProgress').show(); 
    $j.post('/utils/ajaxhandler.aspx', form.serialize(), function(data) { 
    $j('#CommentInProgress').hide(); 
    $j('#CommentSubmitButton').show(); 
    }); 
} 

Đây có phải là cách khác để thực hiện hoặc điều này phụ thuộc vào phiên bản khác biệt của jquery hoặc khác không?

Trả lời

11

Bạn có thể xác định, cách bạn muốn gọi chức năng jquery. Có thể trang web này sử dụng một thư viện khác có trữ $ và vì lý do đó đã sử dụng bí danh $ j.

+0

tốt để biết, bạn có thể chỉ cần "làm điều đó" hay bạn cần phải xác định nó/đặt nó ở một nơi khác? – JasonDavis

+2

http://docs.jquery.com/Using_jQuery_with_Other_Libraries#Overriding_the_.24-function – janoliver

+0

'$ j = jQuery.noConflict();' – gnarf

8

này là để tránh colision với các thư viện khác với:

jQuery.noConflict(); 

Ví dụ một số thư viện như nguyên mẫu cũng sử dụng dấu $, và nếu bạn kết thúc sử dụng cả nó sẽ nhiều khả năng phá vỡ. Nếu bạn phát triển các hàm jquery của bạn bằng cách sử dụng $ j thì nó sẽ không.

+0

Trong trường hợp của trang web này, họ có thể nói $ j = jQuery.noConflict(); - thì $ j có sẵn dưới dạng $ từ jQuery, và ý nghĩa trước đó của $ (nếu có) bị ghi đè. – jnylen

4

Nó chỉ đơn giản là một phương pháp để tránh xung đột đặt tên. Nhiều thư viện JavaScript (jQuery xảy ra là một trong số chúng) sử dụng $ làm lối tắt. Để biết thêm thông tin, hãy xem jQuery.noConflict()

2

Chắc chắn để tránh va chạm với các thư viện khác. Các khét tiếng nhất trong số đó sẽ được nguyên mẫu và scriptaculous.

+1

cũng mootools. :) – janoliver

Các vấn đề liên quan