刷新javascript onclick

时间:2015-07-13 15:10:34

标签: javascript jquery

我正在尝试刷新我在页面加载时在div上设置高度的javascript。

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

到现在为止,一切正常。我的div正从div #zonetexteposition获得正确的高度。

问题是,它只计算onload的页面高度。我的F.A.Q页面中有问题,并且在点击问题时出现了anwser,因此它改变了我的div #zonetexteposition的高度。由于javascript只运行onload,它不会调整到#zonetexteposition的新高度。所以我想知道是否有可能制作一个脚本,可以刷新上面的脚本点击一个问题。

谢谢,希望很明白

3 个答案:

答案 0 :(得分:1)

将您完成的所有代码包装到一个函数中,然后,当页面加载时,调用该函数,每当您单击所需元素时,调用相同的函数。

答案 1 :(得分: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();
});

答案 2 :(得分:1)

一个快速的答案是:而不是每次计算高度,只需在DOM负载上设置最小高度而不是高度

就像那样:

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

所以你不必在DOM加载后重新计算容器的高度,因为容器会“自然地”处理它变得更大。

Tout simplement:)