首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery UI对话框-在Wordpress中未显示的TypeError

jQuery UI对话框-在Wordpress中未显示的TypeError
EN

Stack Overflow用户
提问于 2016-08-04 18:13:11
回答 1查看 1.4K关注 0票数 0

我试图在Wordpress 4.5.3中实现一个jQuery UI对话框,但它只工作了一半时间。在剩下的时间里,我得到了以下错误:

代码语言:javascript
复制
Uncaught TypeError: jQuery(...).dialog is not a function  lwr_jquery_dialog.js(2)

我按照以下方式对脚本进行排队,并验证它们在页面上以正确的顺序加载:

代码语言:javascript
复制
function enqueue_jquery_dialog() {

    wp_enqueue_script('jquery-ui-dialog', false, array('jquery','jquery-ui-core'), 
        false, true );
    wp_enqueue_script('lwr_dialog', get_stylesheet_directory_uri() . 
        '/js/lwr_jquery_dialog.js', array('jquery-ui-dialog') );        
}
add_action( 'wp_enqueue_scripts', 'enqueue_jquery_dialog' );

在lwr_jquery_dialog.js中,我有:

代码语言:javascript
复制
jQuery(document).ready(function() {
    jQuery('#dialog').dialog({
        width: 600,
        modal: true,
        resizable: false,
        draggable: false,
    });
});

下面是functions.php中的实际对话框函数

代码语言:javascript
复制
function add_jquery_dialog() {
    ?>  
    <div id="dialog" title="Today Only">
            DIALOG TEXT HERE
    </div>
<?php
}
add_action('wp_footer', 'add_jquery_dialog');
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-07 13:10:53

更新1:您缺少jquery-ui-dialog脚本。试一试:

代码语言:javascript
复制
add_action('wp_enqueue_scripts', function()
{
  $theme_uri = get_stylesheet_directory_uri();

  wp_enqueue_script('lwr-jquery-dialog', $theme_uri . '/js/lwr_jquery_dialog.js',
['jquery-ui-core', 'jquery-ui-dialog'], false, true);
}, 10, 0);

因为您使用false作为源文件的值,所以依赖项没有正确地排队。有关更多信息,请参见$src函数中的脚本() param。

试试这个:

代码语言:javascript
复制
add_action('wp_enqueue_scripts', function()
{
  $theme_uri = get_stylesheet_directory_uri();

  wp_enqueue_script('lwr-jquery-dialog', $theme_uri . '/js/lwr_jquery_dialog.js',
['jquery-core', 'jquery-ui-core'], false, true);
}, 10, 0);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38774558

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档