我想,當一個div的風格變化從display: none;
到display: block;
如果div顯示樣式從無變爲塊,如何執行jQuery代碼?
我使用的標籤,這就是爲什麼查看該選項卡時,這個div的樣式更改這樣的,這jQuery代碼應該只運行執行jQuery代碼只。
那麼我該如何做到這一點?
謝謝。
編輯:我試過.is(':visible');
它只適用於如果我們加載頁面,這個div是可見的,而不是如果這個div將在以後可見。
我想,當一個div的風格變化從display: none;
到display: block;
如果div顯示樣式從無變爲塊,如何執行jQuery代碼?
我使用的標籤,這就是爲什麼查看該選項卡時,這個div的樣式更改這樣的,這jQuery代碼應該只運行執行jQuery代碼只。
那麼我該如何做到這一點?
謝謝。
編輯:我試過.is(':visible');
它只適用於如果我們加載頁面,這個div是可見的,而不是如果這個div將在以後可見。
你正在尋找的是DOM Mutation Events,它可以在插入,刪除或修改DOM元素時引發事件。
不幸的是,他們從來沒有得到很好的支持,並且were deprecated in DOM3。
在任何情況下(無雙關語意思),在你的情況下,只要捕捉任何UI事件就會使標籤顯示出來就簡單了。
if($("#myTab").is(':visible')){
here is your code ...
}
$(document).ready(function(){
$(your tab container).click(function(){
//set none property to all of your id's
var obj=$this;
if(obj){
$("your id").style.display="block"; // set block to your current item
}
});
});
或
if($("you id").is('visible')){
//do it
}
jQuery對象是否可以訪問'style'屬性?我認爲它不好。所以'$(「你的id」)。style.display =「block」;'不起作用。 (0).style.display =「block」你可以將它改爲'$(「your id」)[0] .style.display =「block」;' ;''或者使用jQuery對象本身:'$(「your id」)。attr('style','display:block');'或類似的東西 –
上面的註釋是正確的。您提供的代碼會引發語法錯誤。 – rlemon
嘗試這樣的事:
if($(DIV).is(':visible')) { // DIV => valid selector of your target
// execute your code
}
OR:
if($('body').on('EVENTNAME', 'DIV:visible')) { // DIV => valid selector of your target
// execute your code
}
OP似乎想要引發事件,而不是測試可見性 – Alnitak
爲什麼不在用戶點擊另一個選項卡時執行代碼? – Celos
是的,也許這會工作,但我想知道是否有可能使用jQuery來做到這一點,聽到什麼時候發生的事情? – Pierre
@Alnitak好了,所以我想我必須按照賽洛斯上面的建議來做。 – Pierre