Drupal 7 & jQuery - ký hiệu đô la


18

Nếu tôi không có kế hoạch sử dụng bất kỳ thư viện JS nào ngoài jQuery, có lý do nào để cần cuộc gọi của Drupal tới jQuery.noConflict () để loại bỏ $ làm bí danh cho jQuery không?

Giả sử không cần xóa bí danh $, có cách nào để tôi có thể lấy lại toàn cầu mà không phải luôn bọc mã jQuery của mình trong (function ($) {...}) không?

Câu trả lời:


11

Giải pháp tôi đưa ra là:

Ở đầu tệp JS đầu tiên tôi đưa vào chủ đề tùy chỉnh của mình, tôi chỉ cần đặt dòng sau:

$ = jQuery;

Làm xong :)


Lol cảm ơn bạn! Tôi đã cố gắng tìm hiểu tại sao jQuery được định nghĩa, nhưng $không được. Chúng ta nên biến đoạn mã đó thành một mô-đun: D
CamelBlues

làm điều đóvar $ = jQuery;
phổ biến

6

Không, bạn không thể (Chà, có lẽ bạn có thể, nhưng bạn không nên).

Có thể tại một thời điểm nào đó, mô-đun của bạn sẽ được sử dụng cho một dự án khác trên một trang web khác và sau đó trang web đó sẽ sử dụng một thư viện JS khác (Hãy nhớ rằng, mọi mô-đun drupal bạn viết đều tự động GPL và khách hàng của bạn có thể sử dụng nó theo bất kỳ cách nào họ muốn).

Không quá phức tạp khi thêm hai dòng này vào mỗi tệp js :)


Tôi đồng ý; vì mục đích tương thích tốt hơn là không sử dụng $ làm bí danh cho jQuery, trong Drupal và luôn luôn bọc mã JavaScript bằng jQuery (function($){…}).
kiamlaluno

Vào thời điểm đó, sẽ không khó để chỉ cần tìm và thay thế để biến tất cả $ thành jQuery trong mô-đun của tôi.
maxedison

@maxedison điều gì xảy ra khi bạn trộn PHP với JavaScript? Sử dụng ký hiệu đô la trong chuỗi văn bản được thao tác bởi JavaScript?

1
Bạn hoàn toàn bỏ qua những gì người hỏi đã "giả định". Đó là một câu hỏi hợp lệ và một trở ngại, đặc biệt là khi nhúng các plugin của bên thứ 3 - bạn cần chỉnh sửa tất cả các tệp đó để chúng hoạt động mà không cần $ và bạn cần thực hiện mỗi lần cập nhật. Tìm và thay thế không hoạt động với các plugin phức tạp hơn, vì chúng có thể yêu cầu một cái gì đó phải là phạm vi toàn cầu. Cần sửa chữa tbh.
đỏ

Tôi đang cố gắng kiếm một cụm từ trên Internet: "Mỗi khi bạn sử dụng $ (), Chúa sẽ giết một con mèo con." Xin vui lòng, nghĩ đến những chú mèo con.
aendrew

0

Đây cũng có thể là một giải pháp khả thi, nếu bạn có xu hướng sử dụng các mô-đun cho các loại câu hỏi đó.

Đô la jQuery

Mô-đun này cho phép các nhà phát triển sử dụng $ để truy cập thư viện jQuery thay vì phải gọi jQuery một cách rõ ràng hoặc sử dụng các bao đóng đặc biệt trong Drupal 7. Tất cả những gì bạn phải làm là kích hoạt nó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.