2010-10-25 157 views
1

我一直试图弄清楚这一个星期了,所以我来到这里。 我有一个函数,我想克隆一个图像被点击后的列表项目,并追加其他地方的列表项... 这是工作,但我有麻烦做相反的...我有它包裹在一个我似乎切换功能,但不能去除附加克隆元素和我原来的列表元素似乎也消失了......删除克隆元素

$("document").ready(function() { 

$('#aleHouseStar').toggle(blue, white); 

function blue(evt) { 
    $('#aleHouseStar').toggleClass('blue').attr("src", "iscroll/images/bluestar40.png"); 
    $("#barlist li[id='aleHouseList']").toggleClass('fav'); 
    $("#barlist li[class=fav]").clone().appendTo("#favorites ul[class=edgetoedge]"); 

} 

function white(evt) { 
    $('#aleHouseStar.blue').removeClass('blue').attr("src", "iscroll/images/whitestar40.png") 
    $("#barlist li[class=fav]").removeClass('fav'); 
    $("#favorites ul[class=edgetoedge]").remove("li [id=aleHouseList]"); 
} 
}); 

任何帮助,将不胜感激

回答

0

当克隆和追加,我想你列表中仍然有原始的li元素,所以你要删除这两个元素。你需要确保你只选择你想要的1个元素。

你可以这样做:

$("#favorites ul[class=edgetoedge]").remove("li [id=aleHouseList]:eq(1)"); 

例如,将删除与该ID第二个里。

P.S.你不应该有多个具有相同ID的元素。

0

据happenning因为你试图删除clonned元素(即DOM被加载后创建的),但你的函数将只处理存在的元素(这就是为什么你原来的列表元素似乎消失了),而DOM是加载,以便你应该尝试.live方法。

您可以从there获取有关自定义事件绑定的信息。
我无法发送代码,因为我仍然努力实现我的项目成功/我的意思是我同一个问题;)

编辑:还要检查this post