Xung đột mã Jquery và cách giải quyết

jquery-thumbCâu hỏi: Tôi sử dụng thư viện jQuery với các thư viện javascript khác như Prototype gây xung đột javascript, làm một trong hai hoặc cả hai không hoạt động. Vậy có cách nào khắc phục, tránh xung đột javascript hay không?

Trả lời:

Trong nhiều trường hợp, sử dụng nhiều hơn 1 thư viện JavaScript hay jquery, việc chèn nhiều file thư viện jquery đổi khi nảy sinh xung đột và khiến các script (hiệu ứng menu, slideshow...) không chạy được nữa. Sau đây MDG xin giới thiệu cách khắc phục vấn đề này.

jQuery cung cấp một phương thức có tên .noConflict() để giải quyết việc này. Nhiệm vụ của nó là trả điều khiển ngược về thư viện kia. Sau đây là cách mà chúng ta cần biết để làm việc này:

<script src="/prototype.js" type="text/javascript"></script> 
<script src="/jquery.js" type="text/javascript"></script>
<script type="text/javascript"> jQuery.noConflict(); </script>

Trước tiên một thư việ khác (trong ví dụ này là Prototype) được chèn vào. Sau đó là jQuery, jQuery được chèn sau sẽ giành $ cho nó. Vì thế ta gọi jQuery.noConflict(); kế tiếp nhằm mục đích bào jQuery trả $ về cho Prototype. Tuy nhiên, kể từ lúc này, chúng ta sẽ không sử dụng $ cho jQuery nữa mà thay và đó là sử dụng chữ jQuery. Ví dụ:

jQuery(document).ready(function($) {
// code ở đây ta có thể sử dụng $ như thường!
});

Hoặc ngắn hơn nữa

jQuery(function($) {
// code ở đây ta có thể sử dụng $ như thường!
});

Đăng nhập FaceBook để lại bình luận, chia sẻ đến bạn bè.