Попробуйте это:
$.fn.howMuchCols = function(){
return Math.round($(this).find(' :last').position().left - $(this).position().left / $(this).outerWidth()) +1;
};
$('.my-stuff-with-columns').howMuchCols();
Объяснение кода :
Этот код создаст функцию 'howMuchCols' для каждого элемента jQuery.
Вы не можете получить ширину элемента со столбцами обычным способом, потому что его ширина используется для определения каждого внутреннего размера столбца.Чтобы узнать, сколько столбцов внутри элемента, вам нужно получить его реальную ширину и поделить на размер столбцов, тогда у вас будет количество столбцов.
Способ получить реальную ширину - сложить Xсмещение последнего дочернего элемента контейнера столбцов с его шириной, затем вычтите его с суммой смещения контейнера столбца X.
В коде я добавил размер одного столбца после выполнения вычитанияи деление, а не использование пиксельной единицы перед делением (это не имеет значения).
Math.round должен быть там, потому что не всегда размер контейнера будет точно делиться на ширину его внутренних столбцов.