从 PHP 调用 JQuery UI 对话函数

Calling a JQuery UI Dialog function from PHP

我对 JQuery 语言还很陌生,但我在网上找到了一个教程,它帮助我通过单击按钮使对话框正常工作。

我使用的函数如下:

$("#registration_ok").click(function() {
    $("#dialog").attr('title', 'Registration').text('Your Registration was Successfull!').dialog({ buttons: { 'Ok': function() {
        $(this).dialog('close');
    }}, open: function(){
            jQuery('.ui-widget-overlay').bind('click',function(){
                jQuery('#dialog').dialog('close');
            })
        }, closeOnEscape: true, draggable: false, resizable: false, hide: 'fade', show: 'fade', modal: true, dialogClass: 'success'});
});

我现在想使用这个函数并从 php 文件调用它,但我无法让它工作。 我可能需要重写函数,因为我认为它只会在实际点击时响应,所以我尝试了以下操作:

function dialog() {
    $("#dialog").attr('title', 'Registration').text('Your Registration was Successfull!').dialog({ buttons: { 'Ok': function() {
        $(this).dialog('close');
    }}, open: function(){
            jQuery('.ui-widget-overlay').bind('click',function(){
                jQuery('#dialog').dialog('close');
            })
        }, closeOnEscape: true, draggable: false, resizable: false, hide: 'fade', show: 'fade', modal: true, dialogClass: 'success'});
};

我尝试过以不同的方式调用该函数,但 none 确实有效:

if(isset($_GET['success'])) { echo '<script type="text/javascript"> function() { dialog(); } </script>'; }

或者

if(isset($_GET['success'])) { echo '<script type="text/javascript"> dialog();</script>'; }

none 成功了,谁能告诉我我做错了什么?

您是否尝试过将要触发的代码包装在 .ready(); 函数中?

$(document).ready(function(){

});

这将确保 jquery 仅在页面加载时触发。我怀疑它在所有元素出现之前触发得太早,因此无法正常工作。

新代码看起来像这样:

<?php
if(isset($_GET['success'])){
    echo '<script type="text/javascript">
              $(document).ready(function(){
                  dialog();
              });
          </script>';  

}
?>