2017-08-17 5 views
0

J'essaie de rendre les grilles statiques. Aucun mouvement du tout.GridStack- Réglage des grilles statiques

J'ai essayé:

var options = { 
     staticGrid: true, 
    }; 
    $('.grid-stack').gridstack(options); 

et aussi ce

var options = { 
     setStatic: true, 
    }; 
    $('.grid-stack').gridstack(options); 

et ce

var options = { 
     staticGrid: true, 
    }; 
    $('.grid-stack').gridstack(options); 
    $('.grid-stack').data('gridstack').setStatic(true); 

Aucun d'entre eux semble fonctionner, j'ai utilisé cette link pour la documentation.

Ils ont également mentionné une méthode setStatic mais il n'y a pas d'exemples d'utilisation de cette méthode.

Répondre

0

Selon le Gridstack docs le staticGrid: true paramètre est correct si vous voulez initialiser et définir la grille comme STATIC au démarrage (votre première méthode). Le SetStatic (true) est une fonction que vous pouvez appeler pour basculer par programmation cet état.

Si vous affichez le code source en direct, vous verrez une nouvelle classe CSS a été ajoutée à l'enveloppe de la grille DIV; une classe appelée 'grid-stack-static'. L'apparence de cette classe confirme que l'option de paramètre staticGrid: true a été acceptée et activée. MAIS comme je me suis retrouvé (avec la v0.30 de la librairie), les widgets de la grille dans ma grille initialisée sont toujours redimensionnables et mobiles. À mon avis, cela suggère un bug.

Vous pouvez verrouiller le mouvement et le redimensionnement à un niveau de l'élément widget en utilisant les attributs d'élément données-gs-no-resize = "yes" et données-gs-Immobilité = "yes".

Cela semble contre-productif d'avoir à faire cela si vous avez déjà dit «statique».

J'ai rencontré un problème sur Github pour interroger ce comportement.

Il a été suggéré d'appeler et d'utiliser la fonction setStatic (true) après l'initialisation de la grille; comme une solution temporaire pour ce bug. Qui était votre troisième méthode - ET cela a fonctionné pour moi. Seule différence entre votre 3ème méthode et la mienne est la fonction est enveloppée dans une fonction document.ready (et j'utilise $ = jquery raccourci pour la commodité/compatibilité sur mon système).

SOLLICITÉS:

(function ($) { 
 
    // Shortcut $=jquery 
 

 
    $(document).ready(function() { 
 
     // start grid 
 

 
     $(function() { 
 
     var options = { 
 
      staticGrid:true 
 
      }; 
 
     $('.grid-stack').gridstack(options); 
 

 
     $('.grid-stack').data('gridstack').setStatic(true); 
 
     }); 
 

 
    // END DOC READY 
 
    }); 
 
// SHORTCUT FIX 
 
})(jQuery);

+0

Cela ne fonctionne pas si vous avez des grilles imbriquées. – Kamran

+0

@Kamran la solution contournera également les grilles intérieures. Répétez l'appel d'API setStatic (true) pour chaque nom de classe de construction de groupe de maillage. i.e $ ('. grid-inner'). data ('gridstack'). setStatic (true); –