如何禁用临时事件?

时间:2015-04-16 15:34:52

标签: javascript jquery

我尝试在用户必须单击保存按钮的页面上执行安全性操作。 因此,当用户点击好的部分没有问题,但如果他做了修改并点击其他部分(导航栏),确认似乎说他没有保存。

$(document).mouseup(function (e)
{
    var container = $(".col-md-12");

    if (!container.is(e.target) && container.has(e.target).length === 0 )
    {
        if (sessionStorage['Sort'])
        {
            var r = confirm("Disposition non sauvegardée ! Continuer ?");        
        }
    }
});

我将sessionStorage用于其他函数并在用户进行修改时填充它,以便在" if"中使用它。

它可以正常工作,但如果用户点击导航栏中的某个类别,则会显示确认,如果他点击了"取消"他进入了这个类别。

这就是为什么我想在确认在这里时禁用事件的原因。如果他点击取消,则用户必须保持在同一页面上。 你有想法禁用所有其他事件吗?

2 个答案:

答案 0 :(得分:2)

您是否尝试过onbeforeunload功能?

  

窗口即将卸载其资源时触发的事件。该文档仍然可见,事件仍然可以取消。

一个例子:

window.onbeforeunload = function(e) {
   if (unsavedChanges) return 'Dialog text here.'; 
};

答案 1 :(得分:1)

您可以添加一个对话框,以防止用户在流程运行时采取行动。

以下是此

的示例

HTML部分

<div 
    id="waitScreen" 
    style="background-color:black;
           color:white;
           font-weight:bold;
           font-size:1.5em;
           border: 5px solid red;">
     Processing Request, please wait...
 </div>

jQuery部分

var modalWait = $("#waitScreen").dialog({
    modal: true,
    closeOnEscape: false,
    draggable: false,
    resizable: false,
    dialogClass: 'no-title'
 });

 $(".ui-dialog-titlebar").hide();    

然后您可以在处理完成后关闭它。

modalWait.dialog("close");