最佳答案
我想知道如何触发一个事件当一个 div 改变它的高度或任何 css 属性。
我有一个 id = mainContent
的 div。我希望 jquery 在改变高度时自动触发一个事件。我做了这样的事:
$("#mainContent").change('height', function() {
$("#separator").css('height', $("#mainContent").height());
});
我知道这是错的。
下面是我的全部代码(我粘贴了所有代码,因为我不知道为什么无法进入 jsfiddle) :
$(document).ready(function() {
$("#separator").css('height', $("body").height());
});
$(function() {
$("#btnSample1").click(function() {
$("#mainContent").css('height', '400px');
$("#mainContent").css('width', '600px');
$("#mainContent").css('background-color', '#F0F0F0');
});
$("#btnSample2").click(function() {
$("#mainContent").css('height', '1600px');
$("#mainContent").css('width', '700px');
$("#mainContent").css('background-color', '#F0F0F0');
});
$("#mainContent").change('height', function() {
$("#separator").css('height', $("#mainContent").height());
});
});
html, body {
width: 100%;
height: 100%;
margin: 0;
padding: 0;
}
#separator {
border-right: 1px solid black;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table style="width: 100%;">
<tr>
<td valign="top" style="width: 19%;">
<table id="mainMenu">
<tr><td><input id="btnSample1" type="button" value="Sample 1" /></td></tr>
<tr><td><input id="btnSample2" type="button" value="Sample 2" /></td></tr>
</table>
</td>
<td valign="top" style="width: 1%;" >
<div id="separator"></div>
</td>
<td valign="top" style="width: 80%;">
<div id="mainContent"></div>
</td>
</tr>
</table>
我尝试根据 mainContent
的高度调整 div id = separator
的高度,只要 mainContent
的高度发生变化。
PS: 在这种情况下,我知道我可以使用按钮事件来做到这一点,但我希望 div 在高度改变时触发事件。请帮帮我。先谢谢你。