JQuery UI диалог в WordPress администратора - PullRequest
12 голосов
/ 07 июля 2010

Я пытаюсь использовать диалоговый скрипт jQuery UI на моей странице администратора темы Wordpress.Все прямо из демонстрации пользовательского интерфейса, и все же я получаю диалоговое окно, в котором диалог не всплывает над чем-либо и вместо этого скрывается в нижнем углу, перед закрывающим тегом body.

Скрипт диалогового окна пользовательского интерфейса правильно поставлен в очередь с wp_enqueue_script, так как он отображается в исходном коде, как и jquery (из google API) и ядро ​​пользовательского интерфейса.

jQuery(document).ready(function($) {
    $("#dialog").dialog();
}); //end onload stuff

Тогда у меня есть это на странице настроек:

<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>

Ответы [ 3 ]

30 голосов
/ 24 августа 2011

Вы должны быть готовы. В WP уже есть диалог и стили для него.

Вот шаги, чтобы использовать это:

  1. Напишите jQuery для создания диалогового окна - вы должны использовать dialogClass из wp-dialog
  2. Поставьте вышеуказанный файл в init, используя правильные зависимости (jquery-ui-dialog)
  3. Поставить в очередь правильные стили WP (wp-jquery-ui-dialog)

Например:

// custom.js
jQuery(function($) {
    var $info = $("#modal-content");
    $info.dialog({                   
        'dialogClass'   : 'wp-dialog',           
        'modal'         : true,
        'autoOpen'      : false, 
        'closeOnEscape' : true,      
        'buttons'       : {
            "Close": function() {
                $(this).dialog('close');
            }
        }
    });
    $("#open-modal").click(function(event) {
        event.preventDefault();
        $info.dialog('open');
    });
});    

В вашем PHP

add_action( 'admin_enqueue_scripts', 'queue_my_admin_scripts');

function queue_my_admin_scripts() {
    wp_enqueue_script (  'my-spiffy-miodal' ,       // handle
                        URL_TO_THE_JS_FILE  ,       // source
                        array('jquery-ui-dialog')); // dependencies
    // A style available in WP               
    wp_enqueue_style (  'wp-jquery-ui-dialog');
}
5 голосов
/ 29 января 2011

Мне удалось показать диалоговое окно, используя следующий код (но стиль не был применен!):

add_action('init', 'myplugin_load');

function myplugin_load(){
    wp_enqueue_script( 'jquery' );
    wp_enqueue_script( 'jquery-ui-core' );
    wp_enqueue_script( 'jquery-ui-dialog' );
}

При звонке его использовали:

$("#dialog-view").dialog({
   height: 240,
   modal: true
});
1 голос
/ 07 июля 2010

Я не знаю, имеет ли это какое-то значение (потому что я сейчас не в том месте, чтобы проводить какое-либо тестирование), но, возможно, попробуйте код точно так же, как на сайте пользовательского интерфейса jQuery:

$(function() {
   $("#dialog").dialog();
});

Желаем удачи!^. ^

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...