2011-05-12 79 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值並相應地採取行動。