2012-04-22 9 views
0

У меня есть серия divs, которые представляют собой аналогичные шахматные доски. но это своего рода хитрые шахматы. в основном пользователи нажимают на кусок и нажимают на кусок врага. если он может убить. он должен переместить его в положение врагов. И враг должен быть удален.jquery replace issues

<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> 

// так что, когда пользователи первый нажмет на whiteking, мы получаем данные квадрат, присвоить его переменной $ из, а затем нажимает на противника черной пешки. выполняет некоторую проверку на сервере и должен переместить

внутренний div квадрата = 4-4 на внутренний div квадрата = 4-5, внутренний div квадрата = 4-5 должен быть удален, а внутренний div of square = 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 ('') ' –

+0

не используйте дополнительный div для вставки клонированного элемента. Http://jsfiddle.net/gaby/jm4eb/15/ –

ответ

0

лично я бы не получить слишком изогнутую форму, заменяющего один элемент с другим. Я бы посмотрел на просто замену атрибутов от одного элемента к другому. Удалите класс white-king из одного элемента и добавьте его в другой.

+0

спасибо за ваш ответ. Я посмотрю, как это сделать. И это звучит для меня самым умным решением. – user1349526

+1

Если бы я мог проголосовать, поверьте мне, я не прекращу голосовать! вы настоящий программист. – user1349526

+0

Спасибо, рад, что смогу помочь. :) – kim3er

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; 
      } 
     }); 

    }());​