6

HTML ファイルを WordPress テーマに変換しています。テキストをクリップボードにコピーするためにプラグイン ZClip を使用しています。ZClip プラグインは私の html デモでは正常に動作しますが、WordPress に変換すると、zclip.jsファイルの 288 行目で「Uncaught TypeError: Property '$' of object [object Object] is not a function」という奇妙な構文エラーが発生しました。は

$(this.domElement).data('zclipId', 'zclip-' + this.movieId);

変数 $ が不明なものだと思います。WPでjQueryが互いに競合する可能性があることについて何か読んだので、main.jsファイルを次のように変更しました

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

    ...
    $("button").zclip({
      path:'js/ZeroClipboard.swf',
      copy: function() { return $(this).attr("data-coupon"); }
    });
});

関数.php

<?php

function load_styles_and_scripts(){
    //load css
    wp_enqueue_style( 'main-styles', get_template_directory_uri().'/style.css' );

    // load scripts
    wp_enqueue_script( 'jquery', 'http://code.jquery.com/jquery-1.10.1.min.js' );
    wp_enqueue_script( 'zclip-script', get_template_directory_uri().'/js/zclip.js' );
    wp_enqueue_script( 'main-script', get_template_directory_uri().'/js/main.js' );

}

add_action('wp_enqueue_scripts', 'load_styles_and_scripts');

丸一日経ってようやくこれを理解しました、笑。WP 3.5.2 が古いバージョンの jQuery 1.8.3 をロードしているように見えますが、私は新しいバージョンを使用していますが、この行が原因でロードされません

wp_enqueue_script( 'jquery', 'http://code.jquery.com/jquery-1.10.1.min.js' );

'jquery' は、WP のローカル jquery インストール用に予約されている可能性があります。変更すると、サイトが機能し始めますが、ここのユーザーによると、推奨されません。

wp_enqueue_script( 'jq', 'http://code.jquery.com/jquery-1.10.1.min.js' );
4

1 に答える 1

15

デフォルトでは、WordPress の jQuery は非競合モードで実行されます。コード内で に置き換える$jQuery、機能するはずです。

http://api.jquery.com/jQuery.noConflict/

于 2013-07-22T21:38:27.417 に答える