在jqueryui模态对话框中停止并稍后处理javascript事件

stop and later persue javascript event in jquery ui modal dialog

本文关键字:后处理 javascript 事件 jqueryui 模态 对话框      更新时间:2023-09-26

我想停止一个事件,显示一个模式对话框,如果用户按下yes,则显示该事件。event.run()在firefox中引发错误。

jQuery(element).click(function(event) {
    event.preventDefault();
    dialog.dialog({
        buttons: {
            'Ja': function() {
                event.run();
            },
            'Nein': function() {
                jQuery(this).dialog('close');
            }
        }
    }).dialog('open');
});

多亏了一个朋友和hashbrown,我终于解决了这个问题。事件不能暂停和拖延。如果暂停,它将阻塞整个DOM。尝试:

jQuery(link).click(function(){while(true)});

当使用jQuery时,它可以设置额外的事件参数我所做的:

jQuery(element).click(function(event, show_dialog) {
    var that = jQuery(this);
    if(!show_dialog) {
        dialog.dialog({
            buttons: {
                'Yes': function() {
                    that.trigger(event.type, [true]);
                },
                'No': function() {
                    jQuery(this).dialog('close');
                }
            }
        }).dialog('open');
        return false;
    } else {
        dialog.dialog('close');
        return true;
    }
});

首先单击show_dialog未定义,并显示模式对话框。在模式对话框中单击"是"将触发事件。键入(单击)show_dialog的附加参数true。http://api.jquery.com/trigger/#trigger-eventType extra参数

that.trigger(event, [true]);是不可能的。我认为原因事件默认操作以前被阻止过。

这是因为在创建弹出窗口后,函数立即返回,事件过期
你要做的是.trigger()一个新的事件。

注意:设置某种全局变量以忽略匿名函数中的第二个事件触发(无限循环问题)。

我能问一下你为什么要这么做吗;如果你让click爆炸,它会怎么办
如果它只是启动一个不同的函数,为什么不直接调用该函数而不是尝试event.run()呢?