Nhiều thư viện JavaScript sử dụng $ như là một tên hàm hoặc biến, cũng giống như jQuery dùng. Trong trường hợp là JQuery, $ chỉ là một bí danh cho jQuery, vì vậy tất cả các chức năng hiện có sẵn không sử dụng $. Nếu chúng ta cần cho sử dụng một thư viện JavaScript cùng với jQuery chúng ta có thể kiểm soát trở về $ sau vào thư viện khác với một cuộc gọi đến $.noConflict():
$.noConflict();
// Code that uses other library's $ can follow here.
Kỹ thuật này đặc biệt hiệu quả trong việc kết hợp với method .ready() này là khả năng bí danh đối tượng jQuery, như trong callback thông qua .ready() chúng ta có thể sử dụng $ nếu chúng ta muốn không sợ xung đột sau đó:
$.noConflict();
jQuery(document).ready(function($) {
// Code that uses jQuery's $ can follow here.
});
// Code that uses other library's $ can follow here.
Nếu cần thiết, chúng ta có thể giải phóng tên jQuery cũng bằng cách thực sự như một đối số cho phương pháp này. Điều này hiếm khi cần thiết, và nếu có chúng ta phải làm điều này (ví dụ, nếu có chúng ta cần phải sử dụng nhiều phiên bản của thư viện jQuery trên cùng một trang), chúng ta cần cho xem xét rằng hầu hết các plug-in dựa vào sự hiện diện của biến jQuery và có thể không hoạt động chính xác trong tình huống này.
Ví dụ: Maps các đối tượng ban đầu đã được tham chiếu bởi $ trở lại $.
jQuery.noConflict();
// Do something with jQuery
jQuery("div p").hide();
// Do something with another library's $()
$("content").style.display = 'none';
Hoặc
jQuery.noConflict();
(function($) {
$(function() {
// more code using $ as alias to jQuery
});
})(jQuery);
// other code using $ as an alias to the other library
Bạn có thể viết ngắn gọn như sau :
jQuery.noConflict()(function(){
// code using jQuery
});
// other code using $ as an alias to the other library
Tạo ra một alias khác nhau thay vì jQuery cho sử dụng trong phần còn lại của script.
var j = jQuery.noConflict();
// Do something with jQuery
j("div p").hide();
// Do something with another library's $()
$("content").style.display = 'none';
Di chuyển jQuery cho một không gian tên mới trong đối tượng khác
var dom = {};
dom.query = jQuery.noConflict(true);
DangTrung.
Không có nhận xét nào:
Đăng nhận xét