Javascript 当另一个CSS值更改时,如何更改CSS值?
我的div结构如下:Javascript 当另一个CSS值更改时,如何更改CSS值?,javascript,jquery,css,Javascript,Jquery,Css,我的div结构如下: <div id='head'> <div class='graphData'> <table>...</table> </div> <div class='graph'>...</div> </div> ... ... 编辑: 对不起,我忘了检查结构的几个重要部分 头部,图形数据和图形都将其最小高度设置为300px 我的问题是,当图形
<div id='head'>
<div class='graphData'>
<table>...</table>
</div>
<div class='graph'>...</div>
</div>
...
...
编辑:
对不起,我忘了检查结构的几个重要部分
头部
,图形数据
和图形
都将其最小高度
设置为300px
我的问题是,当图形数据的最小高度增加或减少时,如何更改头部
和图形的
最小高度以匹配图形数据的
最小高度?有没有办法通过jQuery或javascript检测css样式的变化
由于my DB中动态生成的行,graphData的高度发生了变化。CSS或jQuery没有内置的方法来检测这种性质的变化。
您可能想做的是每隔一段时间检查元素的高度,并将其与上一个已知值进行比较。如果存在差异,则表示高度已更改
var oldHeight = $("#graph").height();
var heightChangeTimer = setInterval(function(){
var newHeight = $("#graph").height();
if (newHeight != oldHeight){
oldHeight = newHeight;
// do some actions on height change...
}
},100);
现在,我已经将间隔设置为每100毫秒一次,但您可以调整该值以满足您的需要-也许可以使其稍微小一些,即更频繁地运行检查…您可以并排设置,或者您可以将最小高度:inherit
设置为内部div。在CSS中没有真正的事件系统(好吧,jQuery有一个)。
这取决于图形元素的变化方式。如果用户与任何元素交互时其高度发生变化,则可以使用jQuery的单击功能:
$("#myElement").click(function() {
$("#head").addClass("higher"); // change height or something
});
你可能会想再读一遍
基本上,我认为您要做的是将事件侦听器绑定到图的div上(文档将等待并侦听发生在它身上的任何事件)。它需要侦听的事件是CSS中的更改(可能是DOMSubtreeModified事件,但我会查找样式属性修改事件,不确定是否存在)
当对图形的更改触发时,处理head div.您可以使用此插件啊哈!这是非常好的了解CSS没有一个事件系统。不错的帖子和很好的解决方案。@chr-而是使用较新的jQuery 1.7+on('click')
语法来绑定事件处理程序…如果高度更改是从AJAX回调启动的,也可以使用此方法…嗯,不太喜欢setInterval解决方案,虽然这肯定会起作用。@ste-这完全取决于内容改变大小的频率。我承认这更像是一个“暴力”解决方案。是的,这更像暴力,但这绝对是一个好的开始。当然,从最初的问题很难判断整个页面的需求,因此也很难判断哪种解决方案是“最好的”。也许我只是倾向于对一个页面上可能有多个JS计时器的可能性有强烈的反应。我没有选择setInterval解决方案,但你的.height建议帮助了我。:)虽然这在理论上可以回答这个问题,但在这里包括答案的基本部分,并提供链接供参考。我们希望为该网站带来精彩内容,而不是将用户发送到其他地方获取答案:)