无法在Jquery中取消绑定事件前导入事件

bit*_*blt 13 jquery bind unbind

我有一个页面,用户可以拖放对象并将其保存为图像.当用户离开页面时,会触发事件beforeunload.现在,每次都会发生这种情况.我想要做的是,如果用户保存了他的工作,解除绑定事件,以便消息可能不会再次弹出.为此,我在jQuery中使用了 unbind方法.但是,它似乎不起作用.下面是绑定和解除绑定事件的代码.

var notSaved = function()
{
   return 'You have not yet saved your work.Do you want to continue? Doing so, may cause loss of your work' ;
}
$(window).bind('beforeunload', notSaved);
Run Code Online (Sandbox Code Playgroud)

调用save方法后,

$(window).unbind('beforeunload', notSaved);
Run Code Online (Sandbox Code Playgroud)

我在这做错了什么?
另外,save方法实际上是一个Ajax调用.

Nic*_*ver 31

beforeunload就绑定而言,这种方式不能可靠地工作.你应该原生地分配它:

window.onbeforeunload = function() {
  return 'You have not yet saved your work.Do you want to continue? Doing so, may cause loss of your work' ;
}
Run Code Online (Sandbox Code Playgroud)

在您的保存方法中:

window.onbeforeunload = null;
Run Code Online (Sandbox Code Playgroud)

  • 这在 IE 中不起作用,你想要的是 `window.onbeforeunload = undefined` (2认同)