当我在下面使用appendBox函数时,第一次它工作正常,与removeBox相同,但第二次它不能正常工作:它复制我的内容。
有什么问题?
function appendBox( id )
{
$("#listContainer").append("<div id=\"appendbox-"+ id +"\"><a href=\"javascript:removeBox("+ id +");\">remove</a></div>");
$("#addBox-"+ id ).slideUp();
}
function removeBox( id )
{
$("#listMyBoxs").append("<div id=\"addBox-"+ id +"\"><a href=\"javascript:appendBox("+ id +");\">tilføj</a></div>");
$("#appendbox-"+ id ).slideUp();
}
这是我的html,当我尝试这个测试时
<div style="height: 200px; border: 1px solid black;">
<div id="listContainer"></div>
<div id="listMyBoxs">
<div id="addBox-1">
<a href="javascript:appendBox( 1 );">tilføj</a>
</div>
</div>
</div>
答案 0 :(得分:3)
我会改变你的方式。一个更典型的解决方案是这样的:
<div id="outer">
<div id="listContainer"></div>
<div id="listMyBoxes">
<a href="#">tilføj</a>
</div>
</div>
使用:
#outer { height: 200px; border: 1px solid black; }
#outer a { display: block; }
和
$(function() {
$("#listContainer a").live("click", function() {
$(this).slideUp(function() {
$(this).appendTo("#listMyBoxes").text("remove").slideDown();
});
return false;
});
$("#listMyBoxes a").live("click", function() {
$(this).slideUp(function() {
$(this).appendTo("#listContainer").text("tilføj").slideDown();
});
return false;
});
});
根据需要进行调整。如果您需要比简单链接更复杂的内容,则可以将其包含在div中并根据需要进行调整。原则都是一样的。
答案 1 :(得分:2)
如果您想移动现有元素,请尝试:
$("#appendbox-"+ id ).appendTo('#listMyBoxs');
使用$("<div></div>")
或.append("<div></div>")
创建新元素。
答案 2 :(得分:0)
这里是同样的问题,我曾经使用javascript和jQuery将内容附加到页面上,在Chrome上运行良好,但是在Firefox上尝试时,它会复制附加的内容。
我使用以下代码将内容附加到div:
function PlayGames() {
$(".gameActions, #flash-game").show();
$(".TheGame").show().append("<object id='flash-game' type='application/x-shockwave-flash' height='100%' width='100%' frameborder='0' scrolling='no' data='URL'>");
}
不知道为什么有时仅在Firefox和IE中会发生这种情况。