2011-05-12 77 views
0

我正在寻找一种使用jQuery(或普通JS)的方法,在该方法中针对div是否具有特定的css特性来构建条件。jQuery添加基于CSS特征的类

例如,我希望jQuery在另一个元素设置为'display:none'时将'position:fixed'添加到元素的CSS,但当第二个元素返回到'position:relative'时,更改为'display:block'。

任何想法?

回答

0

如果你的变化是事件驱动的,你只需将代码添加到您的事件处理程序 所以如果元素一个由通过点击隐藏 - 使元件2位置固定

$("#element_one").click(function(){ 
$("#element_one").hide(); 
    $("#element_two").css({"position":"fixed"}); 
    }) 

,如果你只是想观看的元素你将需要定时器(虽然我真的不能想象这样一个场景,你不要被programaticaly的一个事件触发的变化)

watchInterval = setInterval("watchMe()",10) 

function watchMe(){ 
if ($("element_one").is(":hidden")) { 
$("#element_two").css({"position":"fixed"}); 
} 
} 
+0

我不认为这会工作,但我改变了一些脚本并你提供的第一个解决方案最终工作。 – Alexander 2011-05-12 20:11:09

0
$('#elOne').css('display') == 'none' ? $('#elAnother').css({'position':'fixed'}) : $('#elAnother').css({'position':'relative'}); 

这会做诡计吗?

或者是:

$('#elOne').is(':hidden') ? $('#elAnother').css({'position':'fixed'}) : $('#elAnother').css({'position':'relative'}); 
0

有不这样做,你的任何很好的方式,不能“间谍”的CSS的变化,虽然jQuery不会有watch plugn可以监视某些属性的变化。你最好的选择是使用getComputedStyle,它将得到用于任何对象的真正的CSS值并相应地采取行动。