9
votes

Liste contestable - Désactivez les objets d'enfant déplacés hors de l'élément parent

Ma liste permet de déplacer des objets enfants hors de l'article parent et je veux le changer.

 Entrez la description de l'image ici

Comme vous pouvez le constater, le déplacement des objets enfants de l'intérieur du parent vers un autre parent doit être autorisé, mais déplacer des objets enfants en dehors de tout élément parent ne doit pas être autorisé.

Je pense que le code serait trop long, voici la liste de la liste niquette à celle que j'utilise N nitablelist de Luna Theme , et voici le script jquery.nestable.js


0 commentaires

3 Réponses :


4
votes

Dans l'exemple que vous avez fourni, le plugin JQuery utilisé est Nistable de Dbushell . Avez-vous un contrôle sur le plugin que vous allez finir par utiliser? Le projet est complètement mort et n'a pas été mis à jour pendant 2 ans.

Il pourrait être sage de vérifier peut-être que la solution est toujours maintenue et proposant votre fonctionnalité qui est à peu près une caractéristique «protectrice» que de nombreuses bibliothèques ont de nos jours. p>

Si vous n'avez pas de contrôle sur le plug-in, cette fonctionnalité n'est pas implémentée et ne sera probablement jamais. p>

Si vous avez le contrôle sur le plugin mais que vous souhaitez toujours utiliser celui-ci, Une solution pourrait être d'utiliser une fourchette (il y en a beaucoup depuis que le projet est mort) toujours maintenu et ayant cette fonctionnalité. P>

Une autre solution serait à Cherry Choisissez le code que vous souhaitez vous intéresser auprès des nombreux Demandes de traction soumis au projet mais qui ne sera jamais fusionné. P>

Par exemple , ce Demande de tirage Ajouter de nouveaux rappels au lieu du seul disponible pour le moment: BeforedRagstart code> , dragstart code>, dragmove code>, BeforedRagend code>, dragend code>, etc. Ces nouveaux rappels fournissent de nombreux arguments comme l'article que vous " Reprenant actuellement, où il était avant que vous ayez commencé à le faire glisser et à la destination. Basé sur ces nouvelles informations et surtout la destination, vous pouvez annuler la glisser si la destination est une destination un nœud racine. P> xxx pré>

une autre demande de traction pouvant correspondre à vos besoins est celui-ci . Il fournit un rappel pour rejeter un événement de glisser spécifique, vous pouvez par exemple rejeter un événement de glisser si l'élément en cours de glisser devient un élément racine. P>

$('.dd').nestable({
  reject: [
    {
      rule: function() { 
        // $(this) refers to the dragged element. 
        // Return TRUE to cancel the drag action.

        return $(this).parent().hasClass("rootList");
      }
    }
  ]
});


3 commentaires

UHM ... Stil Lhard pour le comprendre. Je ne suis pas très habitué à JS, et ne savez vraiment pas comment le faire. Je prends du temps et je vais essayer de comprendre ce qui se passe dans ces demandes de traction. Merci pour les astuces de toute façon


Eh bien fondamentalement, c'est le nouveau code (de la communauté) mettant en œuvre des fonctionnalités manquantes dans un projet mort. Si vous voulez vous en tenir et tester ces demandes de traction, vérifiez tout didacticiel sur la manière de les appliquer, ce n'est pas si difficile et vous serez prêt à partir.


@Hideo, le problème est que tous ces événements sont tirés après l'événement de changement. Donc, même si j'annule l'événement, la commande se produira. Comment puis-je arrêter la réorganisation de la réorganisation?



5
votes

note 1 Avant de lire cette réponse, reportez-vous à la Autre réponse, c'est vraiment utile et m'a beaucoup aidé. Note 2 Comme cette réponse a dit, et l'auteur de la bibliothèque d'origine , Cette bibliothèque est complètement morte. Mais il y a quelqu'un qui assume la responsabilité de continuer à développer cette bibliothèque, voici le nouvelle bibliothèque
Note 3 Même la nouvelle bibliothèque ne prendra pas en charge les règles de rejet, et vous devez toujours utiliser une demande de tirage de la bibliothèque.

J'avais exactement le même cas de l'Asker (et que ce qui me fait atteindre ici). Voici comment j'ai résolu mon problème (et j'espère que cela aidera les autres)

réponse

html xxx

javascript xxx


5 commentaires

Très bien. Merci Groupe: 'Catégories', MAXDEPTH: 2 Travail pour moi.


S'il vous plaît, pouvez-vous dire quelle demande de traction avez-vous utilisée pour atteindre ce comportement de rejet? Je ne l'ai pas trouvé. Merci!


Il signifiait cette demande de traction: Link


Rejeter ne fonctionne pas dans mon code, j'utilise NESTABLES2. Je veux empêcher le nœud enfant de ne pas vous déplacer dans un autre nœud parent. Il ne devrait être traîné que dans son groupe de parents. S'il vous plaît suggérer toute aide. @hakan


Vous pouvez répondre ici: Stackoverflow.com/Questtions/62636340/...



2
votes

Je ne peux pas comprendre une bonne solution avec toutes les demandes de traction nichées et la niche elle-même. Je suis tombé sur Cette extension pour JQuery-UI triable. Ici vous avez la propriété Protechaot . Cela fonctionne bien. Exemple de code:

html xxx

javascript xxx < / p>


0 commentaires