使用Jquery删除Accordion Panel

时间:2015-02-27 00:54:46

标签: jquery html accordion jquery-ui-accordion removeclass

在搜索时,我几乎可以找到如何使用Jquery Accordion添加面板并使其工作没问题。 但是,如何删除我添加的同一个面板?

我有这个小提琴:http://jsfiddle.net/cof7ojky/12/正在为相应的人添加一个小组。

但是现在我想删除我添加的同一个小组,类似于这个小提琴:http://jsfiddle.net/robschmuecker/m5TMF/163/

这是我的代码:

JQuery的

$(function() {
  $("#accordion").accordion({
    collapsible: true,
    heightStyle: "content"
  });
  $('#sub-project-button').click(function() {
  // Add a new header and panel
  $( "<h3>New Panel</h3>" ).appendTo( "#accordion" );
  $( "<div>jQuery UI sure is awesome!</div>" ).appendTo( "#accordion" );
  // Refresh the accordion
  $( "#accordion" ).accordion( "refresh" );
  });
});

HTML

<button id="sub-project-button" onclick="changeClassCancel()" type="button" class="btn btn-default">Lorem</button>
<div id="accordion">
  <h3>Section 1</h3>
  <div>
    <p>
    Mauris mauris ante, blandit et, ultrices a, suscipit eget, quam. Integer
    ut neque. Vivamus nisi metus, molestie vel, gravida in, condimentum sit
    amet, nunc. Nam a nibh. Donec suscipit eros. Nam mi. Proin viverra leo ut
    odio. Curabitur malesuada. Vestibulum a velit eu ante scelerisque vulputate.
    </p>
  </div>
</div>

请帮助!提前致谢!我觉得它很简单,但在搜索了几个小时后却找不到

以下是我与Jquery网站合作的关于添加/删除面板的链接&#39;:http://jqueryui.com/upgrade-guide/1.10/#added-ability-to-add-remove-panels,但不知道如何删除。

感谢

1 个答案:

答案 0 :(得分:1)

你和这个例子的主要区别在于他使用了一个易于克隆和删除的模板。您只需添加<h3>,然后添加<div>内容(无包装)。

要模仿您提供的示例所做的事情,只需向标题添加一个小链接,而不是一次点击,它会删除标题和后面的div(包含面板内容)。

只需对代码进行两处小改动即可实现:

1)添加链接/按钮以删除面板(为简单起见,我使用了<a>):

$("<h3>New Panel<a onclick='removePanel(this)' style='float:right'>X</a></h3>" ).appendTo( "#accordion" );

2)添加删除要删除的面板元素的功能removePanel(a)<h3><div>):

function removePanel(a) {
    // first remove the div, then the header
    $(a).parent().next().remove();
    $(a).parent().remove();
    return false;
}

不是最干净的选择,但它有效。你可以在这里看到它:http://jsfiddle.net/cof7ojky/14/