2010-02-06 5 views
2

J'utilise le jQuery Columnizer plugin, et je rencontre un problème étrange. En utilisant 3 colonnes, je colonne le contenu d'un <div> caché dans une cible <div>. Il ne distribue qu'un seul paragraphe à chacune des deux premières colonnes, puis place tous les paragraphes restants dans la dernière colonne.Le plugin jQuery Columnizer ne fonctionne correctement que sur le redimensionnement de la fenêtre

La chose étrange est qu'elle se corrige automatiquement lorsque la fenêtre est redimensionnée. Je devine que cela a quelque chose à voir avec le changement de taille de la cible <div> puisque l'ouverture d'une fenêtre de la console firebug l'amène aussi à se corriger automatiquement. Le réglage lastNeverTallest:true ne semble pas faire quoi que ce soit.

$('#hidden-about').columnize({ 
    columns: 3, 
    target: '#interiors', 
    lastNeverTallest: true, 
    doneFunc: function() { 
     $('#interiors').css('white-space', 'normal'); 
     $('#interiors').fadeIn(200); 
    } 
}); 

Merci pour vos suggestions!

+0

Intéressant que la mise en 'buildOnce: true' il reste cassé. Il semble donc qu'il a besoin de construire plus d'une fois pour le rendre correctement. – rcon

+0

Essayez de définir la largeur par défaut sur le support de colonne. –

+0

Ce problème est traité sur Github dans [ce numéro] (https://github.com/adamwulf/Columnizer-jQuery-Plugin/issues/122). – Sampson

Répondre

0

Assurez-vous que ce qu'il fonctionne après que les éléments DOM sont prêts en l'enveloppant de façon appropriée, comme ceci:

$(function() { //document.ready shortcut 
    $('#hidden-about').columnize({ ... }); 
}); 
//or... 
$(document).ready(function() { 
    $('#hidden-about').columnize({ ... }); 
}); 
//or, if it depends on image sizing, make sure they're loaded with window.load 
$(window).load(function() { //runs after images are loaded 
    $('#hidden-about').columnize({ ... }); 
}); 

Si cela ne résout pas le problème, vous pouvez appeler manuellement le cas où il est lié à re- le rendu sur, en utilisant .resize() comme ceci:

$(window).resize(); 
Questions connexes