2010-04-22 2 views
1

Я хотел бы обновить следующий яваскрипта код, основанный на Prototype рамках в JQuery рамки:преобразование Javascript, от прототипа к JQuery

Event.observe(window, 'load', function() { 
    $$('.piece').each(function(item) { 
    new Draggable(item, { revert: true }); 
    }); 

    $$('.cell').each(function(item) { 
    Droppables.add(item, { 
     accept: 'piece', 
     onDrop: function(piece, cell) { 
     cell.descendants().each(function(item) { item.remove(); }); 

     piece.remove(); 
     piece.setStyle({ 'top': null, 'left': null }); 
     new Draggable(piece, { revert: true }); 
     cell.appendChild(piece); 
     } 
    }); 
    }); 
}); 

Первая часть сценария легко конвертировать:

$(function() { 
    $('.piece').draggable(
    { 
     evert: true 
    } 
); 

    $('.cell').droppable(
    { 
     /* But here, it's more difficult. Right? ;) 
     ... */ 
    } 
    }); 
}); 

У вас есть идея? Любая часть кода приветствуется. Большое спасибо.

+0

Большинство из них похожи. Функция droppable имеет свойство accept, подобное Prototype, onDrop просто называется «drop (event, ui)» (событие). Для «drop», $ (this) будет ссылаться на элемент droppable, а «ui.draggable» - это перетаскиваемый элемент (или то, что вы называете куском). Что касается того, что вы пытаетесь сделать здесь, я не совсем уверен, что понимаю ... Вы просто пытаетесь получить HTML-объект перетаскиваемого объекта в объект с возможностью удаления? – RussellUresti

+0

Собственно, это веб-приложение для игры в шахматы (на Twitter). Вот репозиторий проекта: http://github.com/jsanders/twitchess – moshimoshi

ответ

0

Вот что у меня есть:

jQuery(document).ready(function(){ 
    $('.piece').draggable({ 
     revert: true 
     , scope: 'piece_and_cell' 
    }); 

    $('.cell').droppable({ 
     drop: function(event, ui) { 
      var cell = $(this); 
      cell.empty(); 
      var piece = ui.draggable.detach() 
      piece.css({top:null, left: null}).appendTo(cell); 
      piece.draggable({ 
       revert: true 
       , scope: 'piece_and_cell' 
      }) 
     } 
     , scope: 'piece_and_cell' 
    }); 
}); 
Смежные вопросы