首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关闭时清除jquery对话框内容

关闭时清除jquery对话框内容
EN

Stack Overflow用户
提问于 2012-05-23 06:52:03
回答 2查看 13.3K关注 0票数 1

当我单击页面中的链接时,我打开一个jquery对话框(如果它尚未打开),并在其中添加一个jquery选项卡。跟随来自这里的例子

但是,当我关闭jquery对话框并重新打开它时,先前打开的选项卡将显示出来。当我关闭并重新打开对话框时,我希望jquery对话框中没有选项卡,这样我就可以在对话框中添加一个新的选项卡。

--这是jquery文档中的代码--准备就绪:

代码语言:javascript
复制
<script type="text/javascript">
var tab_counter = 1;

$(document).ready(function() {
var $tabs_example_1 = $('#example_1').tabs();

$('#addUiTab').click(function(){
        var label = 'Tab'+tab_counter,
        content = '<span id="tab">This is a sample tab content</span>';

        $('body').append('<div id="tab_'+tab_counter+'">'+content+'</div>');
        $tabs_example_1.tabs('add','#tab_'+tab_counter,label);
        tab_counter++;

        return false;
    });
});
</script>

--这是我的函数,它打开一个对话框(如果它尚未打开),并在其中添加一个选项卡,当我单击页面中的一个链接:

代码语言:javascript
复制
function open_dialog()
{
    if(($("#jdialog_box_content").dialog( "isOpen" ) === true) == false)
    {
        $('#jdialog_box_content').dialog({
        open: function(event, ui) {  },
        close: function(event, ui) {  },
        autoResize: false,
        width: 460,
        height: 230,
        closeOnEscape: false,
        title: 'Dialog1'
        });
    }

    $('#addUiTab').trigger("click");
}

,最后这是用于jquery选项卡的html,在jquery对话框中:

代码语言:javascript
复制
<div id="jdialog_box_content" style="display:none;">    
    <div id="example_1" class="tabs">
        <ul>
            <li><a href="#tabs-1-2">Tab 1</a></li>
            <li><a href="#tabs-2-2">This is tab 2</a></li>
            <li><a href="#tabs-3-2">This is tab number 3</a></li>           
        </ul>
        <div id="tabs-1-2">Tab 1<br>Lorem ipsum dolor sit amet</div>
        <div id="tabs-2-2">This is tab 2<br>Lorem ipsum dolor sit amet</div>
        <div id="tabs-3-2">This is tab 3<br>Lorem ipsum dolor sit amet</div>
    </div>
</div>

我只是好奇如何删除jquery对话框中的现有选项卡,当它重新打开时。

注释: jquery选项卡的是遵循这个站点上的示例的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-23 06:56:06

在对话框声明中需要close: function(event, ui) { $("#jdialog_box_content").html(""); }。如果您不需要空对话框,也不需要选项卡,您可以这样做:

代码语言:javascript
复制
$('#jdialog_box_content').dialog({
        open: function(event, ui) {  },
        close: function(event, ui) {
            var $tabs = $('#example_1');
            var l = $tabs.tabs('length');
            while(l)
            {
               $tabs.tabs('remove', l-1);                       
               l = $tabs.tabs('length');
            }

        },
        autoResize: false,
        width: 460,
        height: 230,
        closeOnEscape: false,
        title: 'Dialog1'
        });
票数 5
EN

Stack Overflow用户

发布于 2012-05-23 09:41:30

谢谢,我还可以使用jquery对话框的close事件下的for循环代码来关闭所有打开的选项卡:

代码语言:javascript
复制
close: function(event, ui) 
{ 
    for (var i = $('#example_1').tabs('length') - 1; i >= 0; i--) {
    $('#example_1').tabs('remove', i);                  
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10714869

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档