Bạn có thể đạt được điều này bằng cách chạy phiên bản jQuery của bạn trong no-conflict mode. Chế độ "Không xung đột" là giải pháp điển hình để jQuery làm việc trên một trang với các khung công tác khác như prototype và cũng có thể được sử dụng ở đây vì nó cơ bản không gian tên mỗi phiên bản jQuery mà bạn tải.
<script src="jQuery1.3.js"></script>
<script>
jq13 = jQuery.noConflict(true);
</script>
<!-- original author's jquery version -->
<script src="jQuery1.2.3.js"></script>
Sự thay đổi này sẽ có nghĩa là bất kỳ thứ jQuery bạn muốn sử dụng sẽ cần phải được gọi bằng jq13
hơn $
, ví dụ
jq13("#id").hide();
Đây không phải là một tình huống lý tưởng để có hai phiên bản chạy trên cùng một trang, nhưng phương pháp trên sẽ cho phép bạn sử dụng hai phiên bản khác nhau cùng một lúc.
Ngoài sự tò mò, điều gì sẽ xảy ra nếu chúng tôi sử dụng điều khiển bổ sung cần tham khảo thêm một phiên bản jQuery khác?
Nếu bạn cần phải thêm một phiên bản khác của jQuery, bạn có thể mở rộng trên trên:
<script src="jQuery1.3.js"></script>
<script>
jq13 = jQuery.noConflict(true);
</script>
<script src="jQuery1.3.1.js"></script>
<script>
jq131 = jQuery.noConflict(true);
</script>
<!-- original author's jquery version -->
<script src="jQuery1.2.3.js"></script>
Các biến jq13
và jq131
mỗi sẽ được sử dụng cho các tính năng phiên bản cụ thể mà bạn yêu cầu.
Điều quan trọng là jQuery được nhà phát triển ban đầu sử dụng được tải lần cuối - nhà phát triển ban đầu có khả năng đã viết mã của họ theo giả định rằng $()
sẽ sử dụng phiên bản jQuery của họ. Nếu bạn tải phiên bản khác sau phiên bản của chúng, thì $
sẽ bị "tóm gọn" bởi phiên bản cuối cùng bạn tải, điều này có nghĩa là mã của nhà phát triển ban đầu đang chạy trên phiên bản thư viện mới nhất, hiển thị noConflicts
hơi dư thừa!
Liệu các tác giả của tác giả của sự kiểm soát không phát hành bản cập nhật? Hoặc là phiên bản mới hơn không tương thích? Thật lạ khi một nhà cung cấp kiểm soát bên thứ ba thương mại tạo ra một điều khiển được mã hóa cứng cho một phiên bản cụ thể của một mã nguồn mở javascript được cập nhật thường xuyên. – BlackMael
Tôi không thể thấy bạn không bị vặn vẹo nếu bạn sử dụng các điều khiển máy chủ muliple nhấn mạnh vào các phiên bản cố định của jQuery. – BlackMael
Không phải mọi tác giả plugin đều cập nhật một cách tỉ mỉ/có thể cập nhật mã của anh ấy một cách thường xuyên. Tôi cũng phải đối mặt với vấn đề này, nhưng sau đó tôi chuyển sang một tương đương thường xuyên cập nhật cộng đồng. –