所以,如果我不當事件上下文設置爲「display:none」時,jQuery中的委託事件是否保持不變?
$('#foobar-parent').delegate('#foobar', 'click', function(){
//do something after #foobar-child is clicked
});
將在活動還在工作,如果我設置#foobar-parent
到display:none;
再回到display:block;
?
所以,如果我不當事件上下文設置爲「display:none」時,jQuery中的委託事件是否保持不變?
$('#foobar-parent').delegate('#foobar', 'click', function(){
//do something after #foobar-child is clicked
});
將在活動還在工作,如果我設置#foobar-parent
到display:none;
再回到display:block;
?
設置樣式display: none
不會以任何方式更改DOM,也不會更改任何事件偵聽器的功能。它只會改變渲染時的可見性。
但是,如果foobar-parent
設置爲display: none
,那麼它的所有孩子們也將因此這將是很難對任何人得到一個click事件,而它的display: none
,因爲它們都隱藏得被隱藏。
但是,一旦它被設置回display: block
並且它的孩子再次可見並且點擊事件可以再次發生,那麼delegate()
事件處理將工作得很好。事件偵聽器不受顯示樣式設置值的影響。
是的,它仍然有效:http://jsfiddle.net/chF8S/。