2013-07-01 3 views
2

я следующий код для инициализации wookmarkМожно ли установить ширину для определенного элемента в wookmark?

$container.find('.item').wookmark({ 
      itemWidth: 200, 
      offset: 38, 
      autoResize: true, 
      container: $container 
     }); 

, но я хочу сделать различную ширину для каждого элемента зависит от атрибута в элементе, я попробовал что-то вроде

... 
itemWidth: $(this).attr('imageWidth') ? parseInt($(this).attr(imageWidth)) : 200, 
... 

но этого не указывает на элемент «.item», он по-прежнему указывает на $ container

+1

itemWidth - это опция, которая вызывается только один раз для инициализации плагина. Вы не можете делать то, что хотите, не расширяя плагин. BTW, это будет непростая задача, поскольку элементы рендеринга плагина используют неупорядоченный список с LI с абсолютной позицией. Возможно, другой плагин будет более точным, например, gridster.js, даже я не знаю, что именно вы ищете. –

+0

Да, прочитав документацию, похоже, что это невозможно сделать с помощью текущего плагина, я должен попробовать что-то еще, но спасибо за ваш комментарий – IgorCh

+0

+1 У вас есть решение этой проблемы? – laaposto

ответ

0

Это должно быть так.

jQuery.each() итератора и назначить различные itemWidth к каждому элементу, как это:

$('.item').each(function(el) { 
    $(el).wookmark({ 
    itemWidth: $(el).attr('imageWidth') 
    }); 
}); 

Почему это не относится к пункту а $ контейнера? Поскольку вы вызываете .find() на $ container, тогда jQuery возвращает еще $ container, и вы вызываете .wookmark на нем.

этот относится к объекту вызывающего абонента.

+0

Вы проверили это? Кажется невозможным инициализировать wookmark для каждой плитки индивидуально. – Tom