我有两个标签:
添加和删除机制有效,但是检查项目是否已添加到tab2的检查不起作用。现在我只是提醒项目是否存在。
如果检查是在另一个方向进行,检查tab1中是否存在某个项目似乎工作正常,这对我来说很奇怪。
有人可以建议改进我的代码吗?
编辑: 问题是所做的检查总是返回“否”。它需要改进,我没有想法。
HTML:
<div class="demo">
<div id="tabs">
<ul>
<li><a href="#tabs-1">Bands</a></li>
<li><a href="#tabs-2">My bands</a></li>
</ul>
<div id="tabs-1">
<ul id="sortable1" class="bandList">
<li id="6" class="band">
<div class="text">Band 1</div>
<div class="actions">
<a href="#" class="add">Add</a>
<a href="#" class="remove">Remove</a>
</div>
</li>
</ul>
</div>
<div id="tabs-2">
<ul id="sortable2" class="bandList">
<li id="9" class="band">
<div class="text">Band 2</div>
<div class="actions">
<a href="#" class="add">Add</a>
<a href="#" class="remove">Remove</a>
</div>
</li>
</ul>
</div>
</div>
</div>
CSS:
.band .actions a.add{
background:url("../img/edit.png") no-repeat center center;
}
.band .actions a.remove{
background:url("../img/delete.png") no-repeat center center;
}
JQuery的:
// Listening for a click on an add button
$('.band a.add').live('click',function(){
var cur_id = $(this).parent().parent().attr("id");
var tmp = ($('#sortable2').has('#' + cur_id).length ? "Yes" : "No")
alert(tmp);
$('#sortable2').append($('#'+cur_id).clone());
});
// Listening for a click on a delete button (original)
$('.band a.remove').live('click',function(){
var cur_id = $(this).parent().parent().attr("id");
$('#sortable2 > li').remove('#' + cur_id);
});
答案 0 :(得分:0)
if (tmp == "No") { $('#sortable2').append($('#'+cur_id).clone()) }
答案 1 :(得分:0)
这一行:
($('#sortable2').has('#' + cur_id).length ? "Yes" : "No");
始终返回"No"
。如果您返回length
,则会始终返回Yes
。我无法使用has
,但它正在使用children
返回正确的结果(我认为)。它只会走一层。