在删除jQuery UI选项卡之前卸载iFrame

时间:2010-11-30 00:01:35

标签: jquery jquery-ui

我有一组动态创建的jQuery选项卡。每个标签都有一个iFrame。这是代码的精简版本:

$tabs = $('#myTabs').tabs({
    tabTemplate: '<li class="myTabClass"><a href="#{href}">#{label}</a> <span class="ui-icon ui-icon-close">Remove Tab</span></li>',
    add: function (event, ui) {
      $(ui.tab.hash).append('<iframe src="BlankTabHTML.htm" id="tabFrame' + GLOBALTabIndex + '" class="tabIFrames" frameBorder="no"></iframe>');
    },
    remove: function (event, ui) {
      GLOBALTabIndex --;
    }
  });

我的问题是:当用户点击“x”删除标签时,会删除标签和iFrame,但不会触发onb​​eforeunload。

我通过将框架设置为虚拟页面来卸载iframe,然后找出用户是否在onbeforeunload对话框上单击“ok”或“cancel”,以便我知道是否应关闭该选项卡。

如果他们点击取消我需要取消标签删除。我查看了jQuery的文档,一旦调用它就无法找到取消选项卡删除的方法。我知道这真的是一个问题,一个想法?

1 个答案:

答案 0 :(得分:0)

请勿直接通过单击跨度调用tab()。remove()。

按照你的说法删除iframe(更改src)。

首先 onbeforeunload 会触发。之后,如果用户选择“是”, onunload 将会触发,您也可以在此处删除该选项卡。(无法直接确定,用户在卸载前选择的内容,您必须观察卸载,很明显,如果onunload触发,用户选择“是”)