2010-08-08 3 views
1

Я пытаюсь создать сцену. У меня есть 5 предметов в перетаскиваемом div. Там клоны будут перетаскиваться в 20 областей сбрасываемых объектов.JQuery Drag n Drop Stage

Я создал 20 ящиков divs с различными идентификаторами. Означает несколько областей с возможностью падения.

Проблема в том, что у меня нет идеи, как я могу получить идентификатор div, где элемент упал, и как я покажу этот продукт только в этом div. Сейчас он отображает все элементы в одном первом div.

Основная проблема заключается в том, как мы можем динамически создавать несколько областей сбрасываемых областей и отбрасывать элемент в этой конкретной области.

Заранее спасибо

+0

Добро пожаловать в StackOverflow. Возможно, вы захотите включить какой-либо код в свой вопрос, чтобы выяснить все вопросы о том, как вы реализуете. – Gabriel

ответ

1

JQuery-UI Draggable Droppable обработчик события

Вы должны получить Droppable объект DOM из аргументов события, передаваемых капельным методом.

$(".selector").droppable({ 
    drop: function(event, ui) { 
    // $(this) represents the droppable. 
    alert($(this).attr("id")); 
    } 
}); 

перетаскиваемый можно ссылаться на объект через ui.draggable. Большая часть этого была взята из документации JQuery-UI нашел at the jQuery-ui Website

Добавление Droppable к Динамически добавленный элемент

В том случае, если элементы, давайте называть их цели этапа, добавляются динамически в " stage ", тогда вы захотите вызвать метод droppable для этих элементов при их создании.

function makeStageTargets(i) { 
    for(i;i--;true){ 
    var d = $("div").attr("id","item_"+i); // this will make a div id item_i 
    $("stage").append(d); 
    d.droppable(
     drop:function(e, ui){ 
     var param = $(ui.draggable).attr('src'); 
     $("stage").remove(ui.draggable); // this will remove an item when dropped 
     addlist(param); 
     }); 
    } 
} 
makeStageTargets(60); 

Если я пропустил дух вашего вопроса, пожалуйста, посоветуйте.

+0

Спасибо, Габриэль за ваш ответ. Но проблема в том, где идет селекторная часть в $ (".selector"). У меня есть несколько множественных divs больше, чем 20, сгенерированных динамически с такими же идентификаторами, как item_1, item_2 .. и т. Д. Теперь в этот момент мой элемент упал, как я буду менять его динамически. Еще раз спасибо за помощь. – kakaajee

+0

Я думаю, что мы находимся в правильном направлении, но есть всего 5 предметов, и их можно сбросить несколько раз, значит клоны этого предмета будут там отброшены, а еще одна вещь, чтобы ограничить пользователя удалением одного предмета в области сбрасываемой , Большое спасибо Габриэль. Мне было интересно с многих дней, теперь я понимаю, с вашей помощью. – kakaajee

0

Вот код, я использую

$ ("div_item"). Droppable ({

 drop: 
      function(e, ui) 
       { 
        var param = $(ui.draggable).attr('src'); 

        addlist(param); 
       } 

}); 

Где addlist() является функцией, чтобы получить AJAX содержание и отображение в DIV, как $ . ('#div_item') присоединять (msg.txt);

переменную 'Msg', чтобы получить детали элемента из АЯКС файла

проблема с идентификатором div_item это больше, чем 20, со.. lud be upto 60. Я также хочу ограничить каждый div одним удаленным в нем. Большое спасибо за вашу помощь.

+0

Как правило, идея состоит в том, чтобы отредактировать вопрос с новой соответствующей информацией. Ответные сообщения должны храниться для ответов. Я обновил свой ответ, чтобы ответить на вопрос, каким я считаю ваш вопрос. Хотя для ясности ваши вопросы: Как добавить элемент на страницу динамически? Как сделать этот элемент недоступным? Как сделать элементы, упавшие на него, только один раз? Я попытался ответить на эти вопросы в своем ответе. – Gabriel