2012-04-22 73 views
0

我有一系列的div,代表類似於國際象棋棋盤。但這是一個有點棘手的國際象棋。基本上用戶點擊一塊,並點擊敵人的一塊。如果它可以殺死。它應該把它移到敵人的位置。敵人應該被刪除。jquery替換問題

<div class="column" data-square="4-4"> 
<div class="white-king lol">a</div> 
</div> 
<div class="column" data-square="4-5"> 
<div class="black-pawn lol">b</div> 
</div> 
<div class="column" data-square="4-6"> 
<div class="blue lol">c</div> 
</div> 

//所以當用戶第一次點擊白時,我們得到數據平方,將它分配給一個變量$ from,然後點擊敵方黑兵。在服務器上做了一些驗證,並且應該將方塊的內部div移動到方形的內部div = 4-5,方塊的內部div = 4-5應該被刪除,並且內部div廣場= 4-4應presnet

我試過使用jquery克隆。但它不工作了好 小提琴:http://jsfiddle.net/jm4eb/13/

+1

我甚至都不會用'.clone'。只是在內容和課堂上工作。例如假設「a」移動到「b」:'$ to.addClass('white-king')。text($ from.text())''then'$ from.removeClass('white-king')。text '')' – 2012-04-22 22:31:37

+0

不要使用額外的div來插入克隆的元素.. http://jsfiddle.net/gaby/jm4eb/15/ – 2012-04-22 22:36:46

回答

0

我個人也不會太彎曲變形與另一個替換一個元素。我只看着將屬性從一個元素交換到另一個元素。從一個元素中刪除white-king類並將其添加到另一個元素。

+0

感謝您的回覆。我會研究如何去做。這聽起來對我來說最聰明的解決方案 – user1349526 2012-04-22 22:35:34

+1

如果我可以投票,相信我我不會停止投票!你是一個真正的程序員。 – user1349526 2012-04-22 23:01:00

+0

謝謝,很高興我能幫上忙。 :) – kim3er 2012-04-23 08:08:49

0

這不是仍然是很好的方式,但你可以嘗試

(function() { 

     var from = null; 
      var $change =null; 
     var to = null; 

     $(".column").click(function(){ 
      if(from === null) 
      { 
       $(this).css("background-color","yellow"); 

       from = $(this).data('square'); 
        $change= ($('<div/>').append($(this).clone(true).children()).html()); 


      } 
      else 
      { 

       to = $(this).data('square'); 
       $(this).html("").html($change); 
       $('div[data-square="'+from+'"]').html("<div class=lol>empty</div>").css("background-color",""); 
       from = to = null; 
      } 
     }); 

    }());​