我正在寻找一个使用jQuery(或普通JS)的方法,在该方法中构建一个条件是否div具有特定的css特征。
例如,我希望jQuery在另一个元素设置为'display:none'时将'position:fixed'添加到元素的CSS中,但是当第二个元素更改时,在第一个元素上更改回'position:relative' 'display:block'。
有什么想法吗?
答案 0 :(得分:0)
$('#elOne').css('display') == 'none' ? $('#elAnother').css({'position':'fixed'}) : $('#elAnother').css({'position':'relative'});
那可以解决这个问题吗?
或者也许:
$('#elOne').is(':hidden') ? $('#elAnother').css({'position':'fixed'}) : $('#elAnother').css({'position':'relative'});
答案 1 :(得分:0)
没有任何好方法可以做到这一点,因为你不能“窥探”CSS更改,尽管jQuery确实有一个watch plugn可以监视某些属性的变化。最好的办法是使用getComputedStyle
来获取用于任何对象的真实CSS值,并采取相应的行动。
答案 2 :(得分:0)
如果您的更改是事件驱动的,则只需将代码添加到事件处理程序即可 因此,如果元素1被点击隐藏 - make元素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"});
}
}