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 回答