打开多个jQueryUI对话框

时间:2013-06-10 22:11:14

标签: jquery-ui jquery

我希望一个接一个地打开多个jQuery对话框。但只有第一个打开。

jsFiddle

Dlg 1 - 提出是/否问题。

Dlg 2 - 如果是,将单词“go”粘贴到隐藏字段id="frmtrig"中,然后触发更改事件。捕获此事件时,它会运行AJAX以使用通过ajax成功函数接收的html填充$('#message')div,然后在对话框中显示该内容。

Dlg 3 - 关闭后,提出最后一个对话框。

下面的代码在第2步中断。alert('bonk')甚至没有发生......

我还删除了alert('bonk')和成功函数的结束}之间的所有内容,并且仍未显示bonk警报。有人能用我的AJAX代码发现问题吗?

奇怪的是,我已经做了很多(相对简单的)AJAX,所以我很困惑,我被困在这里。 请注意,可能需要将我的代码块复制/粘贴到您自己服务器上的两个或三个文件中进行测试,因为jsFiddle不能用于排除AJAX故障。

我找不到这样做的例子是不成功的,过去两天我的努力没有奏效。

HTML

    <div id="hot_link">Hover over this line to begin it all</div>
    <div id="message"></div>
    <div id="alert"></div>
    <input type="hidden" id="frmtrig">

JAVASCRIPT

$(function(){

    var cnt = 0;
    var ans = 0;
    var seen = 0;
    var dlg = $('#message');

    dlg.dialog({
        title: '"The Big Test',
        autoOpen:false,
        modal:true,
        width: 500,
        close: function() {
            if (seen==0 && ans > 0) {
                cnt++;
                seen++;
                dlg.dialog('open');
            }
        }
    });

    $('#hot_link').hover(
        function() {
            //Hover-in
            if (cnt < 1 || (cnt % 3 == 0)) {
                var msg = '<p>If you say NO, the Dialog will just close. If you press YES, an AJAX call will happen.</p>';
                dlg.html(msg);
                dlg.dialog(
                    'option',
                    'buttons',
                        [{
                            text: 'Download',
                            click: function() {
                                ans++;
                                //seen = 5;
                                $('#frmtrig').val('go').change();
                                $(this).dialog('close');
                            }
                        },
                        {
                            text: 'Not now',
                            click: function() {
                                ans = 0;
                                $(this).dialog('close');
                            }
                        }]
                );
                dlg.dialog('open');
                //alert('hi');
            }
            cnt++;
        },
        function() {
            //Hover-out
            //need this one to prevent duplicating hover-in code
        }
    );

    $('#frmtrig').change(function() {
    alert('boink');
            $.ajax({
                type: "POST",
                async: false,
                url: "ajax/ax_all_ajax_fns.php",
                data: 'request=freegive_99',
                success:function(data){
alert('bonk');
alert(data);
                    var dlg = $('#message');
alert('me be here');
                    dlg.html(data);
                    dlg.dialog(
                        'option',
                        'buttons',
                            [{
                                text: 'OK',
                                click: function() {
                                    $(this).dialog('close');
                                }
                            }]
                    );
                    dlg.dialog('open');
                }
            });
    });

}); //END document.ready

AX_ALL_AJAX_FNS.PHP

    if ($_POST['request'] == 'freegive_99') {
        echo 'THIS_LINE_WORKS';
    }

1 个答案:

答案 0 :(得分:1)

我已经在我的机器上试过你的代码了,它运行正常。

如果未打开第二个对话框,则表示未达到success请求中的ajax

您确定问题不是来自错误的路径吗?

url: "ajax/ax_all_ajax_fns.php", // Check this path