防止wordpress插件上的jquery冲突的防弹方法
我一直在开发wordpress插件一段时间,我似乎总是得到以下问题与我的所有插件Jquery冲突问题。
我已经尝试了很多不同的方法来避免这些,但我总是让用户联系我说,当他们从我的插件安装了一个它已经停止工作aahhhhh的另一个插件。
我真的想把它排序,因为我理解这对人们来说是多么令人沮丧。
我总是设置和选择或包括wordpress 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而不会出现冲突问题。
谢谢
它是否适用于封闭?
(function($){ // your plugin code })(jQuery);
阅读该法典的以下部分:
-
从非默认位置加载默认的WordPress脚本
-
jQuery noConflict包装器
您应该使用wp_enqueue_scripts
hook而不是init
。
你应该使用jQuery.noConflict();
而不是$.noConflict();
。