我想删除选项卡而不选择它。当我选择一个标签并将其删除时。它工作正常。没有选择它不起作用
HTML:
<!DOCTYPE html>
<html>
<head>
<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"> </script>
</head>
<body style="font-size:62.5%;">
<div id="tabs">
<ul>
</ul>
</div>
<input type='button' id='addTab' value='Add Tab'>
<input type='button' id='removeTab' value='RemoveTab'>
</body>
</html>
JS:
$(document).ready(function() {
$("#tabs").tabs({
tabTemplate: "<li><a href='#{href}'>#{label}</a> <p title='close' id='removeTab' style='cursor:pointer;display:inline'>x</p></li>"
});
});
$(function() {
var index = 0;
index++;
$("#addTab").live('click', function() {
index++;
var title = 'Tab..... ' + index;
var url = '#fragment-' + index;
addTab(url, title, index);
});
function addTab(url, title, index) {
$('#tabs').tabs("add", url, title, [index]);
}
$('#removeTab').live('click', function() {
var $tabs = $('#tabs').tabs();
var selected = $tabs.tabs('option', 'selected');
alert(selected);
$('#tabs').tabs("remove", [selected]);
});
});
答案 0 :(得分:1)
您可以选择删除后的第一个标签,如下所示:http://jsfiddle.net/6VrwD/28/ 使用我添加的代码,您可以找出更复杂的逻辑,例如选择下一个选项卡(如果存在的话等)。
答案 1 :(得分:1)
以下是一个工作示例http://jsfiddle.net/k44Wk/,即使没有选中,也会删除点击的标签。
以下是使事情有效的修改部分:
$('#removeTab').live('click', function() {
var $tabs = $('#tabs').tabs();
var selected = $tabs.tabs('option', 'selected');
if(selected == -1)
selected = $('p[id=removeTab]').index(this);
$('#tabs').tabs("remove", [selected]);
});
有一件事,你应该避免对多个元素使用相同的ID。
答案 2 :(得分:1)
您可以从单击“x”图标的选项卡中获取href属性,然后使用该属性删除该选项卡。您可以通过执行以下操作来完成此操作:
var link = $('a', $(this).parent()).attr('href');
$('#tabs').tabs("remove", link);
唯一的问题是删除按钮与x图标具有相同的ID(您应该尽可能阻止的地方)现在正在寻找父母中的第一个元素(在本例中是这样)。最好的方法是删除删除提交或制作另一个单击该提交的功能。