【问题标题】:loading jqueryUI dialog() function on WordPress page在 WordPress 页面上加载 jqueryUI dialog() 函数
【发布时间】:2015-04-21 15:37:51
【问题描述】:

我正在尝试为 WordPress 网站制作一个弹出窗口 JavaScript。我正在使用 jQueryUI 的 dialog() 函数。我的预期行为是在页面加载时会出现一个弹出窗口,但这并没有发生。我正在使用http://jqueryui.com/dialog/#default的基本示例

我用 jQuery 可以抓取的 div 制作了一个测试 html 页面:

<div id="dialog" title="Basic dialog"> <p>This is the default dialog which is useful for displaying information. The dialog window can be moved, resized and closed with the 'x' icon.</p> </div>

我的 jQueryUI 脚本代码是这样的:

jQuery(document).ready(function() {

    $( "#dialog" ).dialog();

});

我已将此脚本保存到文件popup.js

然后我使用以下代码将脚本排入队列,效果很好,因为我可以在网页的 HTML 源代码中看到该脚本:

function my_popup_script() {
    wp_enqueue_script(
        'my-popup-script',
        get_stylesheet_directory_uri() . '/js/popup.js',
        array( 'jquery' )
    );
}

add_action( 'wp_enqueue_scripts', 'my_popup_script' );

我不确定在这个过程中我在哪里犯了错误。感谢您的帮助。

【问题讨论】:

  • 你有链接分享吗?如果没有(localhost 安装等),请在页面加载后检查您的浏览器控制台日志,是否有任何错误?
  • 抱歉,链接是dev.greenbee-web.com/lanwt/joe-test-jquery-popup-page 我认为问题是我没有第二个 JavaScript 函数可以显式打开对话框。我认为对话框会自行打开,因为对话框的“autoOpen”默认为“true”,但从我读过的示例中,总是有第二个 JavaScript 函数,通常带有一个按钮,可以打开对话框。但是……我还是迷路了。你认为我在正确的轨道上使用第二个 JavaScript 函数来显式打开对话框吗?

标签: wordpress jquery-ui dialog


【解决方案1】:

这只是一个jquery conflict,试试这个:

jQuery(document).ready(function() {

    jQuery( "#dialog" ).dialog();

});

如果要将jquery对象用作$符号,可以使用jquery noConflict函数,只需将这一行放在所有jquery代码之前:

var $ = jQuery.noConflict();

如果您希望它在点击事件时弹出以便您可以使用:

var $ = jQuery.noConflict();
$(document).ready(function() {    
    $('.the_button').click(function(){     
        $( "#dialog" ).dialog();
    });    
});

【讨论】:

  • 是的,你是对的,解决了它。现在弹出页面在页面加载时加载。但是,既然我已经掌握了基础知识,我真的很想仅在单击按钮后才加载弹出窗口。我应该使用更新的 JavaScript 代码编辑这个问题,还是开始一个全新的问题?
  • 我会为你的答案投票,但我的代表只有 13 名。我需要 15 人才能投票。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多