WordPress核心jQuery冲突

z31licg0  于 11个月前  发布在  WordPress
关注(0)|答案(1)|浏览(142)
function my_customize_scripts(){
wp_register_script('my-customizer-js', get_template_directory_uri() .'/js/customizer.js', array('jquery'), 1.0, true);
wp_enqueue_script('my-customizer-js');
}add_action('customize_controls_enqueue_scripts', 'my_customize_scripts', 1);

字符串
jQuery文件enqueue with hook customize_controls_enqueue_scripts只有在页面开始加载时才能工作,但加载后它就停止工作了。更糟糕的是,所有.change()函数的执行结果都消失了。它以前工作得很好,三天前就停止工作了。这个文件,customizer.js必须与这个hook customize_controls_enqueue_scripts一起排队,否则它在定制器中就不能工作了。好吧,至少我知道,因为我试过所有其他的钩子
这就是如何将jQuery代码 Package 在customizer.js

jQuery(document).ready(function($){
//code here
}


inside有change()函数,用于依赖于输入的元素。
我尝试wp_derejister_script('jquery');将wordpress核心jQuery移出队列,然后在header.php中的wp_head之前添加硬编码的Google API,如

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>


它的工作,但它不是一个选项.我希望WordPress的核心jQuery在我的网站上运行.我试图撤消所有的变化,我已经做了customizer.js时,它停止工作.我还试图减少这个文件,并采取了所有的事件,除了一个.它也没有帮助.但我把里面的函数alert();工作得很好顺便说一句.
所以,任何帮助都很感激。
P.S.我检查了其他的js文件,因为我可以看到他们工作正常。我也试图入队customizer.js的一般方式wp_enqueue_script()猜怎么着,你对-它没有工作。这是我第一次在这里问问题,这是我最后的希望。

thtygnil

thtygnil1#

wp_register_script有一个$required参数-所以任何(其他)JS“需要”jQuery将导致WP重新初始化并包含它。
技巧是通过重新注册自己的脚本来替换jquery脚本。

wp_deregister_script('jquery');  // remove WP jquery that relies on v1
wp_enqueue_script( 'jquery', '//code.jquery.com/jquery-3.1.0.min.js', array(), $ver, true );

字符串

相关问题