2010-11-30 22 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のドキュメントを見て、それが呼び出された後にタブ除去をキャンセルする方法を見つけることができないようです。私はこれが実際にいくつかの質問、1つのアイデアであることを知っていますか?

答えて

0

tab()を呼び出さないでください。スパンをクリックして直接remove()を呼び出します。

あなたが言ったようにiframeを削除するだけです(srcを変更する)。

最初onbeforeunloadが発生します。その後、ユーザーが「はい」を選択した場合はオンロードが起動し、タブを削除することができます(直接アンロードする前にユーザーが選択したことはありません。ユーザーがオンロードの発火の場合は「はい」を選択)

+0

私はこの考えが好きです。私はそれを試してみましょう。 –

+0

素晴らしいです!ありがとう!私はダミーページの読み込み時にイベントを使用して終了しました。 –

関連する問題