2010-11-30 70 views
1

我有一组动态创建的jQuery选项卡。每个选项卡都有一个iFrame。下面是代码的精简版:在jQuery UI选项卡删除之前卸载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被删除,但onbeforeunload没有被解雇。

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

如果他们点击取消我需要取消选项卡删除。我查看了jQuery的文档,似乎无法找到一种方法来取消选项卡删除后,它被称为。我知道这真的是一个问题,任何想法?

回答

0

不要通过点击span来直接调用tab()。remove()。

就像你说的那样删除iframe(更改src)。

第一个onbeforeunload将会着火。稍后,如果用户选择“是”,则onunload将会触发,您也可以在其中删除该选项卡(无法直接确定,用户在未加载前选择了什么,必须观察卸载,很明显,如果onunload发生火灾,用户选择“是”)

+0

我喜欢这个想法。我会试一试。 – 2010-11-30 19:00:23