我开发wordpress插件已经有一段时间了,我的插件Jquery冲突问题似乎总是会出现以下问题。
我已经尝试了很多不同的方法来避免这些问题,但我总是得到用户联系我,说当他们从我的插件上安装了一个插件时,它已经阻止了另一个插件的工作。
我真的很想解决这个问题,因为我知道这对人们来说是多么令人沮丧。
我总是设置和选项或包含单词按jquery,下面只是一个不能工作的示例代码。
add_action( 'init', array( $this, 'include_jquery' ) );
function include_jquery(){
wp_deregister_script('jquery');
wp_register_script('jquery', ("http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"), false, '1.7.1');
wp_enqueue_script('jquery');
}好的,所以在这个问题之后,我现在在插件管理中有一个选择选项来切换是或否,以包括或不包括jquery,我知道它是自动安装的,但一些用户删除了它,这对某些人有效,但不是所有人。
如果您包含wordpress jquery,我知道您必须使用以下命令运行您的jquery。
jQuery(document).ready(function ($) {jQuery而不是美元符号$
我理解并使用过jquery,没有冲突,并尝试和测试了这些http://api.jquery.com/jQuery.noConflict/中的一些
$.noConflict();
jQuery(document).ready(function($) {
// Code that uses jQuery's $ can follow here.
});与其他方法一样,这适用于某些用户,但不是所有用户,这些用户仍然与某些用户发生冲突。
我希望从这篇文章中,我们一些wordpress插件开发人员可以提供帮助,并发布一种在插件中使用wordpress和jquery的简单方法,而不会出现冲突问题。
谢谢
发布于 2012-09-10 17:58:14
它不是在闭包的情况下工作吗?
(function($){
// your plugin code
})(jQuery);发布于 2012-09-10 18:07:55
请阅读本手册的以下部分:
你应该使用wp_enqueue_scripts钩子而不是init。
并且您应该使用jQuery.noConflict();而不是$.noConflict();。
https://stackoverflow.com/questions/12348168
复制相似问题