2013-05-06 4 views
2

У меня есть простая функция, которая вычисляет высоту div. У меня есть размер шрифта расширяющий на моем сайте, и я хочу, чтобы пересчитать высоту, если это будет нажата:Функция jquery пересчитывает высоту при нажатии

http://jsfiddle.net/tSH2L/

var boxHeight = function($item) { 
     var $this; 
     var heightArray = []; 
     $item.each(function() { 
      $this = $(this); 
      heightArray.push($(this).height()); 
     }); 
     var biggest = Math.max.apply(Math, heightArray); 
     $item.parent('div').children($this).css('height', biggest); 
    } 
    $(function() { 
     boxHeight($('.box')); 
     $('#fontsize li').on('click', function() { 
      boxHeight($('.box')); 
     }); 
    }); 

мне нужно пересчитать высоту, когда пользователь нажал на #fontsize Li , и я хотел сделать это максимально простым. Я не уверен, что вы просто вызываете функцию, но это не работает. Это может быть, как это добавляется в массив

Любая помощь оценили

+0

Вы можете использовать автоматическую высоту? – juanpastas

+0

boxHeight трудно понять, можете ли вы попробовать его объяснить? просто последняя строка – juanpastas

+0

Я не могу, у меня есть три div с классом коробки, и мне нужно, чтобы они всегда были одинаковой высоты, все с различным содержанием. boxHeight в основном получает высоту 3 divs с классом .box, затем Я получаю наибольший размер и добавляю его как значение высоты css. Мне в основном нужно пересчитать это, когда щелкнули fontsize li. – user989952

ответ

0

Эй, может быть, попробовать что-то вроде этого

JS Fiddle Example

Я не отлаживать код специально, но если бы я должен был угадать что происходит не так, я бы сказал, что вы ориентируетесь неправильный элемент, когда вы пытаетесь установить высоту с этой линии здесь,

$item.parent('div').children($this).css('height', biggest);

Этот бит кода не будет работать, я думаю. Попробуйте изменить его на

$item.css('height', biggest);

+0

ваше демо хорошо выглядит, вы можете добавить высоту прежде, чем что-либо щелкнуло тоже? – user989952

+0

Да, вы можете. Задайте высоту с помощью '$(). Height()' fn. Вы можете использовать 'boxHeight()' fn, чтобы определить требуемую высоту при запуске, вызвав ее во время фазы инициализации вашего скрипта. Что-то вроде '$ (window) .load (function() {var reqHeight = boxHeight (". Box "); $ (". Box "). Height (reqHeight);});' – jdog

Смежные вопросы