2010-06-07 82 views
9

如何通過JavaScript(jQuery)觸發非錨點元素的活動狀態?觸發CSS:非錨點元素的活動選擇器


雖然參照審查Section 5.11.3 of the W3C CSS2 specification:hover僞選擇器來查看有關觸發的激活,我碰到這使我相信它應該是可能的下面就來:

「的:當用戶激活一個元素時,激活的僞類應用,例如,在用戶按下鼠標按鈕並釋放它的時間之間。

「CSS沒有定義哪些元素可能處於上述狀態,或者狀態是如何進入和離開的。腳本可能會改變元素是否對用戶事件做出反應,並且不同的設備和UA可能有不同的指向方式到或激活元素「。

感謝您的協助!

回答

2

你不能使用javascript觸發一個類似:active的CSS僞選擇器。 沒有可以執行的功能/處理程序,所以即使您在具有css :active僞選擇器設置的元素(例如,將背景顏色設置爲紅色)的某個元素上設置了trigger,0,click,也不會發生任何事情。

+0

那如果真的是令人失望的。我知道我還沒有找到辦法,但我不明白爲什麼不應該這樣做。 =( – 2010-06-09 12:41:41

2

我在搜索完全相同的東西時遇到了這個問題。

基本上我有一個文本區域和一個按鈕。 button.click在用戶按回車時觸發。然而:在CSS中的活動選擇器沒有被觸發,所以它不會產生相同的影響。

所以這就是我所做的。它有點多餘,但有效。

在CSS

/*this is for actual clicks on the button */ 
.Button:active { 
position:relative; 
top:5px; 
} 

/* this is for pressing enter instead of clicking the button */ 
.Button.activate{ 
position:relative; 
top:5px; 
} 

然後在jQuery的

//if enter is pressed, trigger button click 
$("#textArea").keydown(function(event){ 
if(event.keyCode == 13){ 
    $("#button").click(); 
    $("#button").addClass('activate'); 
} 
}); 

//if enter is released, remove class 
$("#textArea").keyup(function(event){ 
if(event.keyCode == 13){ 
    $("#button").removeClass('activate'); 
} 
}); 
+0

)在css規則中使用'.Button:active,.Button.activate {...}'可以讓你只定義一次樣式並消除冗餘問題。 – dim 2017-10-12 19:20:10

相關問題