2016-02-23 182 views
-1

我正在尝试使用moveButton函数交换元素。当用户点击其中一个图像时,将第一个图像移动到#good div,然后剩下的任何图像都会进入#evil div。我有我认为会工作的if/else语句。将其中一个元素移到另一个元素中,其余元素将移动到第三个位置

<div id="character"> 
    <script type="text/javascript"> 
    function moveButton(elem){ 
     if($(elem).parent().attr("id") == "menu"){ 
      $(elem).detach().appendTo('#good'); 
     } 
     else{ 
      $(elem).detach().appendTo('#evil'); 
     } 
    } 
    </script>  
</div> 
<div id="good"> 

</div> 
<div id="evil"> 

</div> 
<div id="menu"> 
    <div class="character" onclick="moveButton(this)" data-name="Chomper"> 
    <p>Chomper</p><p><img width="100" src="http://vignette2.wikia.nocookie.net/plantsvszombies/images/a/a3/Chomper1.png/revision/latest?cb=20090521220057" alt=" + Chomper + "></p><p>Hit Points: 3.55</p> 
    </div> 
    <div class="character" onclick="moveButton(this)" data-name="Kernel-pult"> 
    <p>Kernel-pult</p><p><img width="100" src="http://vignette4.wikia.nocookie.net/plantsvszombies/images/c/c4/Kernel-pult1.png/revision/latest?cb=20090521220358" alt=" + Kernel-pult + "></p><p>Hit Points: 1.55</p> 
    </div> 
</div> 
+0

你想让这些图标可以从邪恶中移除吗?你想让图标停止在邪恶的切换? –

回答

0

门你如果与像fiddle

<script type="text/javascript"> 
    var good = false; 

    function moveButton(elem) { 
    if ($(elem).parent().attr("id") == "menu" && !good) { 
     $(elem).detach().appendTo('#good'); 
    } else { 
     $(elem).detach().appendTo('#evil'); 
    } 
    good = true; 
    } 

</script> 

一个布尔值,在发送的所有剩余caracters邪使用$("#menu").find(".character").detach().appendTo('#evil');

fiddle 2

<script type="text/javascript"> 
    var good = false; 

    function moveButton(elem) { 
    if ($(elem).parent().attr("id") == "menu" && !good) { 
     $(elem).detach().appendTo('#good'); 
    } else { 
     $(elem).detach().appendTo('#evil'); 
    } 

    $("#menu").find(".character").detach().appendTo('#evil'); 

    good = true; 
    } 

</script> 
+0

Sascha,感谢您的回答,如果我继续点击这些元素,似乎就能奏效。我想知道是否有可能将所有剩余的元素移动到邪恶部分,当我点击这个好人。再次感谢你。 –

+0

是的。我为你调整了小提琴。请参阅上面的扩展答案。 –

0

不要把这个函数传递给你的函数,它已经在范围之内了。同样使用detach()方法,您正在从DOM中删除元素。请尝试以下...

function moveButton() { 
    if($(this).parent().attr("id") == "menu") { 
     $(this).appendTo('#good'); 
    } else { 
     $(this).appendTo('#evil'); 
    } 
} 
相关问题