2010-08-08 4 views
1

J'essaie de créer une scène. J'ai 5 articles dans un div draggable. Les clones seront traînés dans 20 zones de dépôt. J'ai créé 20 boîtes de div avec des identifiants différents.Jquery Drag n Drop Stage

Signifie plusieurs zones de largage.

Le problème est que je ne ai pas l'idée que comment puis-je obtenir id de la div où l'élément est abandonné et comment, je vais montrer ce produit uniquement dans ce div. En ce moment, il affiche tous les éléments dans un seul premier div.

Le problème principal est que nous pouvons créer plusieurs zones de dépôt de manière dynamique et déposer un élément dans cette zone spécifique.

Merci à l'avance

+0

Bienvenue dans StackOverflow. Vous voudrez peut-être inclure du code avec votre question pour clarifier toutes les questions sur la façon dont vous mettez en œuvre. – Gabriel

Répondre

1

événement Draggable jQuery-UI largable gestionnaire

Vous devez obtenir l'objet dom largable des arguments d'événements passés à la méthode de la goutte.

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

l'objet draggable peut être référencé par ui.draggable. La plupart de cela a été pris de la documentation jQuery-UI trouvé at the jQuery-ui Website

Ajout largable à un Dynamiquement Ajouté Element

Dans le cas où les éléments, nous allons les appeler des cibles de la scène, sont dynamiquement ajoutés au " étape "alors vous voudriez appeler la méthode droppable sur ces éléments quand ils sont créés.

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

Si j'ai manqué l'esprit de votre question s'il vous plaît aviser.

+0

Merci Gabriel pour votre réponse. Mais le problème est, où vient la partie du sélecteur dans $ (".selector"). J'ai plusieurs divs multiples de plus de 20, générés dynamiquement avec des identifiants comme item_1, item_2 .. etc. Maintenant, à ce stade mon article est déposé, comment je vais le changer dynamiquement. Encore une fois merci pour votre aide. – kakaajee

+0

Je pense que nous sommes dans la bonne direction, mais il y a 5 éléments au total et ils peuvent être supprimés plusieurs fois, cela signifie que le clone de l'objet sera supprimé, et une chose de plus pour empêcher l'utilisateur de déposer un objet . Merci beaucoup Gabriel. Je me demandais autour de plusieurs jours, maintenant je reçois un indice avec votre aide. – kakaajee

0

Voici le code que je utilise

$ ("div_item"). Largable ({

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

        addlist(param); 
       } 

}); 

Où addlist() est une fonction pour obtenir le contenu ajax et affichage dans div comme $ . ('#div_item') append (msg.txt);

variable 'msg' pour obtenir les détails de l'article à partir du fichier ajax

le problème est avec id div_item Ce sont plus de 20, co.. Je veux être jusqu'à 60. Je veux aussi restreindre chaque div avec un seul. Un grand merci pour votre aide

+0

généralement l'idée est d'éditer une question avec les nouvelles informations pertinentes. Les messages de réponse doivent être conservés pour les réponses. J'ai mis à jour ma réponse pour répondre à ce que je crois que votre question soit. Par souci de clarté, votre question est la suivante: Comment ajouter un élément à la page de façon dynamique? Comment rendre cet élément droppable? Comment est-ce que je rends les objets qui sont tombés sur lui seulement droppable une fois? J'ai tenté d'aborder ces questions dans ma réponse. – Gabriel