2015-07-13 3 views
0

Я пытаюсь обновить javascript, который я создал, чтобы установить высоту на моем div при загрузке страницы.Обновить javascript onclick

<script> 
    jQuery(function($) { 
     $('#bloc2').height($('#zonetexteposition').height()); 
     $('#bloc2-vertical').height($('#zonetexteposition').height()); 
     $('#bloc2-horizontal').height($('#zonetexteposition').height()); 
    }); 
</script> 

До сих пор все работает нормально. мои divs получают правильную высоту из div #zonetexteposition.

Дело в том, что он вычисляет высоту страницы только при загрузке. На моей странице F.A.Q есть вопросы, и anwser появляется при щелчке вопроса, поэтому он меняет высоту моего div #zonetexteposition. Поскольку javascript работает только с загрузкой, он не изменяет размер до новой высоты #zonetexteposition. Поэтому я хотел бы знать, возможно ли создать сценарий, который будет обновлять приведенный выше сценарий при выборе вопроса.

Спасибо, надеюсь, что это ясно

ответ

1

Создайте функцию, которая имеет расчеты:

function foo() { 
    $('#bloc2').height($('#zonetexteposition').height()); 
    $('#bloc2-vertical').height($('#zonetexteposition').height()); 
    $('#bloc2-horizontal').height($('#zonetexteposition').height()); 
} 

Добавить прослушиватель событий к кнопке:

$("button").on('click', function(event) { 
    foo(); 
    //anything you want on the click also 
}); 

Вызвать функцию на нагрузке:

jQuery(function($) { 
    foo(); 
}); 
+0

когда им создание функции, как вы делали. это дает мне ошибку Uncaught TypeError: $ не является функцией –

+0

'jQuery (function ($) {function foo() {....}; $ (button) .on (...); foo(); }); 'поместите это так –

1

Wrap весь код, вы сделали в функцию, то при загрузке страницы, вызовите эту функцию, когда вы щелкните на нужном элементе, вызовите ту же функцию.

1

Один быстрый ответ будет: вместо вычисления высоты каждый раз, просто установите минимальную высоту вместо высоты на нагрузке DOM.

Как что:

$('#bloc2, #bloc2-vertical, #bloc2-horizontal').css('min-height',$('#zonetexteposition').height()); 

Таким образом, вы не должны пересчитывать высоту контейнера после загрузки DOM, как контейнер будет обрабатывать его «естественным» он становится больше.

Tout Simplement :)

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