it-swarm-vi.tech

LoạiError: $ không phải là một chức năng Wordpress

Tôi có thể có lỗi trong tài liệu .js trong chủ đề tôi đã mua:

$('.tagcloud a').wrap('<span class="st_tag" />');

Tôi đang cố gắng giải quyết nhưng tôi không phải là lập trình viên nên tôi không biết làm thế nào ..__ Trang web này là: http://www.framerental.com .

37
user1645326

Bạn sử dụng jQuery.noConflict(); Vì vậy, $ không được xác định.

Bạn có thể đọc thêm về nó ở đây docs

Cố gắng sửa đổi mã của bạn theo cách này (thêm dấu $ vào chức năng sẵn sàng):

jQuery(document).ready(function($) {
    // Code that uses jQuery's $ can follow here.
});
116
jurka

Lỗi chức năng là một điều phổ biến trong hầu hết các hệ thống quản lý nội dung và có một vài cách bạn có thể tiếp cận điều này.

  1. Gói mã của bạn bằng cách sử dụng:

    <script> 
    jQuery(function($) {
    
    YOUR CODE GOES HERE
    
    });
    </script>
    
  2. Bạn cũng có thể sử dụng API của jQuery bằng cách sử dụng noConflict();

    <script>
    $.noConflict();
    jQuery( document ).ready(function( $ ) {
    // Code that uses jQuery's $ can follow here.
    });
    // Code that uses other library's $ can follow here.
    </script>
    
  3. Một ví dụ khác về việc sử dụng noConflict mà không sử dụng tài liệu đã sẵn sàng:

    <script>
    jQuery.noConflict();
        (function( $ ) {
            $(function() { 
                // YOUR CODE HERE
            });
         });
    </script>
    
  4. Bạn thậm chí có thể chọn tạo bí danh của mình để tránh xung đột như vậy:

    var jExample = jQuery.noConflict();
    // Do something with jQuery
    jExample( "div p" ).hide();
    
  5. Một giải pháp dài hơn nữa là đổi tên tất cả các tham chiếu của $ thành jQuery:

    $( "div p" ).hide(); đến jQuery( "div p" ).hide();

32
Simon Hayter

Thay vì làm điều này:

$(document).ready(function() { });

Bạn nên làm điều này:

jQuery(document).ready(function($) {

    // your code goes here

});

Điều này là do WordPress có thể sử dụng $ cho một cái gì đó không phải là jQuery, trong tương lai hoặc bây giờ và vì vậy bạn cần tải jQuery theo cách mà $ chỉ có thể được sử dụng trong một cuộc gọi lại sẵn sàng cho tài liệu jQuery.

11
Guy Castell

Chỉ cần thêm điều này:

<script>
var $ = jQuery.noConflict();
</script>

vào thẻ head trong header.php. Hoặc trong trường hợp bạn muốn sử dụng ký hiệu đô la trong khu vực quản trị viên (hoặc một nơi nào đó, nơi tiêu đề.php không được sử dụng), ngay trước nơi bạn muốn sử dụng nó. 

(Có thể có một số xung đột mà tôi không biết, hãy kiểm tra và nếu có, hãy sử dụng các giải pháp khác được cung cấp tại đây hoặc tại liên kết dưới đây.)

Nguồn: http://www.wpdevsolutions.com/use-the-dollar-sign-in-wordpress-instead-of-jquery/

9
Fanky

Tôi đã thêm một tệp tập lệnh tùy chỉnh được tải ở cuối phần head và chèn vào phần sau ở trên cùng:

(function (jQuery) {
    window.$ = jQuery.noConflict();
})(jQuery);

(Đây là bản sửa đổi câu trả lời của Fanky)

6
Savage

Khác với noConflict, điều này cũng hữu ích:

(function( $ ) {
    // Variables and DOM Caching using $.
    var body = $('body');
    console.log(body);
})( jQuery );
4
Waqar Alamgir

Nếu bạn đã bao gồm jQuery, có thể có xung đột. Hãy thử sử dụng jQuery thay vì $.

1
Giles Tamplin

Tôi đã có thể giải quyết vấn đề này rất dễ dàng với jQuery đơn giản của tôi wp_enqueue_script("jquery");

0
Dan Osborne