Làm cách nào để sử dụng các thư viện UI jQuery bổ sung như có thể kéo được?


7

Theo các tài liệu tại jQuery UI Framework , để sử dụng thư viện JUI như sortable, cần có đoạn mã sau:JHtml::_('jquery.ui', array('sortable'));

Điều này rõ ràng hoạt động tốt nếu jquery.ui.sortable.jstồn tại, nhưng không có tệp tương đương cho các thư viện JUI khác, cụ thể là có thể kéo / thả.

Cách chính xác để sử dụng các thư viện JUI không có trong bản cài đặt J3.x lõi là gì?

Giải pháp: Với hướng dẫn từ @lodder, đây là các bước tôi đã làm theo để có được thư viện JUI hoạt động đầy đủ:

  1. Đã đi đến JUI Themeroller và tạo / tải xuống chủ đề và các tệp liên quan
  2. Tạo thư mục component/com_XXX/assets/jquery-ui-1.11.0.customđể chứa chủ đề và thư viện từ zip đã tải xuống.
  3. Đã thêm mã dưới đây vào thành phần của tôi và "tada" ... tất cả các tính năng / chức năng JUI đều khả dụng.

( Nơi này sẽ không giống nhau nếu không có Lodder )

JHtml::_('jquery.framework');
JHtml::_('script', JUri::root() . 'components/com_XXX/assets/jquery-ui-1.11.0.custom/jquery-ui.min.js');

Câu trả lời:


1

Để nhập các thư viện JS bổ sung, bạn nên sử dụng JHtmlphương thức như sau:

JHtml::_('script', JUri::root() . 'path/to/the/file/script.js');

Không liên kết CDN nào tôi biết cho các widget jQueryUI riêng biệt, điều này thật đáng tiếc, bạn có thể đã làm điều này:

JHtml::_('script', '//cdnjs.cloudflare.com/ajax/libs/script.js'); 

Đối với vị trí của các tệp JS, tôi sẽ tạo một thư mục trong thư mục "phương tiện" và đặt chúng vào đó hoặc thêm chúng vào cùng thư mục với các tệp cốt lõi:

ROOT/media/jui/js

Cập nhật 1:

Bạn không phải thay thế thư viện JUI. Thư viện bạn hiện thấy là thư viện lõi không chứa bất kỳ vật dụng nào. Các widget mà khi được nhập, đến từ các tệp riêng biệt và được thực hiện bằng mã bạn đã cung cấp trong câu hỏi của mình. Để có được các widget không được cung cấp với gói Joomla, bạn có thể làm như tôi đã mô tả trong câu trả lời của mình hoặc biên dịch gói JUI trên trang web chính thức và thay thế jquery.ui.core.mintệp bằng nó. Sau đó, sử dụng sẽ nhập lõi cùng với các tiện ích mà bạn đã biên dịch nó.

JHtml::_('jquery.ui');

Điều này tuy nhiên không được khuyến khích

Cập nhật 2:

Sau khi xem tài liệu, bạn cũng có thể thêm thư viện của riêng mình và gọi cho họ bằng cách sử dụng:

JHtml::_('mylibrary.myloader');

Tôi không chắc chính xác nó hoạt động như thế nào vì tôi chưa bao giờ thử nó, nhưng nó cũng là một lựa chọn khác và cũng có lợi cho Cập nhật 1.


Vậy tôi có hiểu rằng nên thay thế toàn bộ thư viện JUI không? Và nếu vậy, Joomla có "biết" để thay thế phiên bản mặc định / đang chạy bằng phiên bản đã chỉ định mong muốn không?
GDP

@GDP - Tôi đã cập nhật câu trả lời của mình. Hy vọng điều này cung cấp một cái nhìn sâu sắc hơn
Lodder

À ... đã tìm thấy một cách giải quyết với câu trả lời ban đầu của bạn, và nó đang hoạt động, nhưng bây giờ sẽ xem xét điều này ... Tôi đang cố gắng tuân thủ "chỉ cách đúng" để làm những việc có lợi cho việc thực hiện nhanh chóng- phương pháp làm việc, lol.
GDP

Phần đầu tiên trong câu trả lời của tôi và Bản cập nhật 2 đều là hai cách chính xác :) Nếu bạn quyết định thực hiện theo phương pháp Cập nhật 2 , tôi thực sự sẽ đánh giá cao nếu bạn có thể chia sẻ chính xác cách bạn làm điều đó vì sẽ rất tốt khi biết tài liệu tham khảo trong tương lai vì tài liệu này không chi tiết lắm
Lodder

@GDP - Có tin tức nào về kết quả / phương pháp kết thúc của bạn được sử dụng không?
Lodder
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.