我正在创建wordpress主题,并使用一些使用jQuery的脚本。它工作得很好,直到我启用了一个名为“付费下载”的插件。
这实际上使所有jquery依赖项都不再工作。所以,我在想,也许我做错了什么。例如,我使用prettypoto并将其初始化为:
/* Pretty Photo */
wp_register_style(\'pretty-photo-css\', LIBRARIES_URI . "prettyPhoto/css/prettyPhoto.css");
wp_enqueue_style(\'pretty-photo-css\');
wp_register_script(\'jquery-pretty-photo\', LIBRARIES_URI . "prettyPhoto/js/jquery.prettyPhoto.js");
wp_enqueue_script(\'jquery-pretty-photo\', array(\'jquery-my\'));
jquery。Prettypoto。js是实际的prettypoto文件,我刚刚在该文件的末尾添加了以下几行,以触发prettypoto效果:
jQuery.noConflict()
jQuery(function(){
jQuery("a[rel^=\'prettyPhoto\']").prettyPhoto();
});
JQuery的排队方式如下:
wp_register_script(\'jquery-my\', "http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js");
wp_enqueue_script(\'jquery-my\');
正如我所提到的,在启用“付费下载”插件之前,这项功能就可以正常工作。我想知道。我做错什么了吗?启用插件后,我会在Chrome javascript控制台中遇到类似的错误:
Uncaught TypeError: Object [object Object] has no method \'prettyPhoto\'
因为插件添加jquery是为了自己的目的,所以似乎存在冲突?有什么想法吗?
最合适的回答,由SO网友:Mamaduka 整理而成
尝试调用方法“prettypoto”DOM就绪后,替换代码:
jQuery.noConflict()
jQuery(function(){
jQuery("a[rel^=\'prettyPhoto\']").prettyPhoto();
});
使用此选项:
jQuery(document).ready(function($) {
$("a[rel^=\'prettyPhoto\']").prettyPhoto();
});
此外,“付费下载”插件将WordPress使用的最新版本的jQuery排队
1.6.1, 如果您从Google CDN注册与WordPress相同版本的jQuery,会更好