Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当另一个CSS值更改时,如何更改CSS值?_Javascript_Jquery_Css - Fatal编程技术网

Javascript 当另一个CSS值更改时,如何更改CSS值?

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结构如下:

<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建议帮助了我。:)虽然这在理论上可以回答这个问题,但在这里包括答案的基本部分,并提供链接供参考。我们希望为该网站带来精彩内容,而不是将用户发送到其他地方获取答案:)