0

我对 Jquery 很陌生,正在尝试为一系列打开对话框的链接打开一个对话框,但我努力实现这一目标我已经搜索了 3 天,但我找到的每一篇文章都来自这里,看起来非常技术性几乎没有任何解释。

我的目标是从数据库中输出行并将行 ID 分配给这样的按钮。

<div id="dialog">
    <div class="content"></div>
</div>
<button id="opener" onClick="showDialog(1)">Oview details</button>

查看详情 查看详情

我希望能够将 eventID 从中传递到 Jquery 对话框。所以我尝试在一个函数中包含主对话框代码并将 eventID 作为参数传递,这似乎不起作用。

function showDialog(eventId)
{   
$(document).ready()
{
    $(function () {
        $("#dialog").dialog({
            autoOpen: false,
            height: $(window).height() - 50,
            width: $(window).width() - 50,
            show: {
                effect: "blind",
                duration: 400,
            },

            hide: {
                effect: "explode",
                duration: 400
            },

            //pass the event Id to process and load the content into the div named content.
            open: function (event, ui) {
                $('#content').load("process.php?id=" eventId);
                ;

            }
            buttons: {
                            "Accept Event": function() {
                            $( this ).dialog( "close" );
                            },
                            Cancel: function() {
                            $( this ).dialog( "close" );
                            }
                           }

        });
        $("#opener").click(function () {
            //Show the div named dialog upon clicking of item id opener.
            $("#dialog").dialog('open');

        });
    });

}
}

我可以在一个简单的 confirm() Javascript 框中实现这一点,但我真的很喜欢 Jquery 对话框的样式和效果。

我发送此信息的页面是

进程.php

    <?php 
print_r($_GET);
switch($_GET['id'])
{
    case 1: 
        echo "number 1 was passed to dialog"; 
        break;

    case 2: 
        echo "Number 2 was passed to dialog";
        break;

    default: 
        echo "Unknown Dialog Value!!";


}

谁能详细解释实现这一目标的最佳方法?

非常感谢所有花时间阅读这篇真正长篇文章的人。

4

1 回答 1

0

首先,将document.ready处理程序放在函数内部是一个坏主意。$(document).ready() {并且$(function () {也是同样的东西,所以你在处理程序中有一个document.ready处理document.ready程序,这不是必需的。

重新排列您的代码,如下所示:

$(document).ready() {
    function showDialog(eventId) {
        // Place your function logic here
        $("#dialog").dialog({...
    }
}

此外,您希望您的点击侦听器位于showDialog函数之外,但在document.ready. 按照您现在的方式,处理程序只会在showDialog运行一次后应用,因此您必须单击#opener两次才能打开对话框。

于 2013-03-10T11:28:50.147 回答