在加载导致问题的脚本时,似乎出现了一些奇怪的情况。我有这个:
function fyxt_custom_scripts() {
wp_enqueue_script('jquery');
//load order is important (from website jquery, popper, bootstrap)
wp_register_script('prefix_bootstrap', '//stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js', array( 'jquery' ),'',true );
wp_enqueue_script('prefix_bootstrap');
}
add_action( 'wp_enqueue_scripts', 'fyxt_custom_scripts' );我收到以下控制台错误:
Uncaught :引导的工具提示需要Popper.js (https://popper.js.org/)
因此,我在WordPress中添加了下面的内容。
function fyxt_custom_scripts() {
wp_enqueue_script('jquery');
//popper for bootstrap
wp_register_script( 'popper','https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js', array( 'jquery' ),'',true );
wp_enqueue_script( 'popper' );
//load order is important (from website jquery, popper, bootstrap)
wp_register_script('prefix_bootstrap', '//stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js', array( 'jquery' ),'',true );
wp_enqueue_script('prefix_bootstrap');
}
add_action( 'wp_enqueue_scripts', 'fyxt_custom_scripts' );一旦它装上了弹出器。但现在我又犯了一个错误。知道为什么吗?
tooltip.js:559 Uncaught TypeError: this.element.getAttribute is not a function
at i.t._fixTitle (tooltip.js:559)
at i.t._setListeners (tooltip.js:554)
at new i (tooltip.js:142)
at i.t._enter (tooltip.js:576)
at HTMLDocument.<anonymous> (tooltip.js:528)
at HTMLDocument.handle (jquery.js?ver=1.12.4-wp:3)
at HTMLDocument.dispatch (jquery.js?ver=1.12.4-wp:3)
at HTMLDocument.r.handle (jquery.js?ver=1.12.4-wp:3)因此,似乎工具提示是公认的,但说它需要波普尔。但是,它得到了它和工具提示错误。这里发生什么事情?
我尝试了几种解决方案,但没有效果。我认为这与加载顺序/依赖关系有关。这是完整的加载脚本。
function fyxt_custom_scripts() {
wp_enqueue_style( 'jquery-custom', plugin_dir_url( __FILE__ ) . '../css/fyxt-theme-2/jquery-ui-1.10.4.custom.css' );
wp_enqueue_style( 'jquery-custom', plugin_dir_url( __FILE__ ) . '../css/fyxt-theme-2/jquery-ui-1.10.4.custom.min.css' );
wp_enqueue_script( 'jquery' );
wp_enqueue_script( 'jquery-ui-core' );
wp_enqueue_script( 'jquery-ui-tabs' );
wp_enqueue_script( 'jquery-ui-button' );
wp_enqueue_script( 'jquery-ui-accordion' );
wp_enqueue_script( 'jquery-ui-slider' );
wp_enqueue_script( 'jquery-ui-core' );
wp_enqueue_script( 'jquery-ui-widget' );
wp_enqueue_script( 'jquery-ui-progressbar' );
wp_enqueue_script( 'jquery-ui-sortable' );
wp_enqueue_script( 'jquery-ui-autocomplete' ); //for tags, use later for generators (powers, effects, etc)
wp_enqueue_script( 'tabs-script', plugin_dir_url( __FILE__ ) . '../js/tabs.js', array('jquery-ui-core', 'jquery-ui-accordion', 'jquery-ui-tabs') );
wp_enqueue_script( 'tags-script', plugin_dir_url( __FILE__ ) . '../js/tagmanager-master/tagmanager.js', array(), '', false );
wp_enqueue_style( 'tags-custom', plugin_dir_url( __FILE__ ) . '../js/tagmanager-master/tagmanager.css' );
//plupload
wp_enqueue_script( 'plupload-full', plugin_dir_url( __FILE__ ) . '../js/plupload.full.min.js', array(), '', false );
wp_enqueue_script( 'plupload-scripts', plugin_dir_url( __FILE__ ) . '../js/jquery.ui.plupload/jquery.ui.plupload.min.js', array(), '', false );
wp_enqueue_style( 'plupload-css', plugin_dir_url( __FILE__ ) . '../js/jquery.ui.plupload/css/jquery.ui.plupload.css' );
//popper for bootstrap
wp_register_script( 'popper','https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js', array( 'jquery' ),'', false );
wp_enqueue_script( 'popper' );
//bootstrap
wp_register_style('prefix_bootstrap', '//stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css');
wp_enqueue_style('prefix_bootstrap');
//load order is important (from website jquery, popper, bootstrap)
wp_register_script('prefix_bootstrap', '//stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js', array( 'popper' ),'', false );
wp_enqueue_script('prefix_bootstrap');
}
add_action( 'wp_enqueue_scripts', 'fyxt_custom_scripts' );如果包含‘tabs script’,我得到了错误,jquery按钮都坏了。制表板和手风琴很管用。
tooltip.js:568 Uncaught TypeError: this.element.getAttribute is not a function
at i.t._fixTitle (tooltip.js:568)
at i.t._setListeners (tooltip.js:563)
at new i (tooltip.js:140)
at HTMLDocument.<anonymous> (tooltip.js:767)
at Function.each (jquery.js?ver=1.12.4-wp:2)
at a.fn.init.each (jquery.js?ver=1.12.4-wp:2)
at a.fn.init.i._jQueryInterface [as tooltip] (tooltip.js:758)
at HTMLDocument.<anonymous> (tabs.js?ver=ec6af3c620057499034adb106af5aae1:10)
at i (jquery.js?ver=1.12.4-wp:2)
at Object.fireWith [as resolveWith] (jquery.js?ver=1.12.4-wp:2)
at Function.ready (jquery.js?ver=1.12.4-wp:2)
at HTMLDocument.J (jquery.js?ver=1.12.4-wp:2)如果我注释掉‘tabs script’,我会让jquery按钮正常工作,但是它会破坏选项卡和手风琴。
jquery.ui.plupload.min.js?ver=ec6af3c620057499034adb106af5aae1:1 Uncaught TypeError: i.widget is not a function
at jquery.ui.plupload.min.js?ver=ec6af3c620057499034adb106af5aae1:1
at jquery.ui.plupload.min.js?ver=ec6af3c620057499034adb106af5aae1:1我不太熟悉加载顺序和依赖关系,所以这里的建议是很棒的。非常感谢你的帮助!
发布于 2019-12-13 17:22:44
似乎是PLUpload引起了这些问题。我尝试了许多不同的配置和加载顺序,它似乎总是打破了plupload。我决定不使用它,而是使用另一个类似的插件,Dropzone。PLupload已经有几年没有更新了,所以认为最好还是采用最新的/现代的风格。谢谢大家的建议和建议。
发布于 2019-12-06 19:12:55
我所做的是尊重引导程序提供给我的URL (https://getbootstrap.com/docs/4.4/getting-started/introduction/):
然后,在我的函数中,我只包含了我需要的引用:
function fyxt_custom_scripts(){
wp_register_style(('prefix_bootstrap', 'https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css', array(), '4.4.1', 'all');
wp_register_script('popper', 'https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js', array( 'jquery' ),'1.16.0', true );
wp_register_script('prefix_bootstrap', 'https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js', array( 'jquery', 'popper' ),'4.4.1', true );
}
add_action( 'wp_enqueue_scripts', 'fyxt_custom_scripts' );我遵循引导重新组合,并将脚本调用放在页脚中。在此之后,请确保在主题中分别调用<?php get_header() ?>和<?php get_footer() ?>标记之间的<head>...</head>和</body>标记之前的函数。
发布于 2019-12-06 06:47:36
您应该将所有JS脚本移到页脚中。希望它能帮到你。请看下面:
function fyxt_custom_scripts() {
}
add_action( 'wp_footer', 'fyxt_custom_scripts' );
https://stackoverflow.com/questions/59205275
复制相似问题