2013-06-30 17 views
2

我正在使用引導選項卡,並且在其中一個選項卡中有圖像。我需要得到他們的寬度,但問題是,他們被設置爲display:none,直到我點擊該選項卡,所以jquery width()總是返回0.我試圖把它放入window.load#tabid.load但他們都沒有工作。那麼有沒有辦法在隱藏的jquery選項卡中獲取圖像的寬度?我只需要他們的寬度時,顯示選項卡,所以我認爲應該有一些事件監聽器,當選定的選項卡完全加載時觸發,但我還沒有找到它。也嘗試on('shown',function())如bootstrap中所述,但它也不工作。當顯示從無變爲塊時事件監聽器

編輯:這裏是代碼:

<ul class="nav nav-tabs" id="myTab"> 
    <li class="active"><a href="#popis" data-toggle="tab">Popis</a></li> 
    <li><a href="#recenzie" data-toggle="tab">Recenzie</a></li> 
    <li><a href="#galeria" data-toggle="tab">Galéria</a></li> 
    <li><a href="#ostatne-produkty" data-toggle="tab" id="#test">Súvisiace produkty</a></li> 
</ul> 

的javascript:

$('#test').on('shown',alert($('img.product-thumbnail').width())); 

與此事件觸發imediatly甚至頁面加載之前,它顯示爲空。也嘗試將id =「test」放入href中,但實際上它不起作用。反正引導文件說,它應該是上,而不是在DIV

+1

*「還試圖在(‘顯示’,函數())作爲引導進行確認,但也不要工作。」 *顯示您是否嘗試過的實際代碼。代碼值1,024字。 –

+0

在編輯中上傳的代碼。 – horin

+0

你能看到我的活動有任何問題嗎?我不知道爲什麼它會在頁面加載時發出imediatly,而不僅僅是在顯示標籤 – horin

回答

0

的問題是,on.('show'的圖像加載,但尚未呈現,因此$.width$.height不提供大小信息。

但您可以在$(window).load之後直接讀取img DOM元素的widthheight屬性。

example

如果你需要的圖像呈現,然後才希望把他們呈現大小,那麼你應該使用on('shown'...。只有在顯示標籤(包含圖像)後觸發。

我試過it out and它的工作如預期

+0

好方法,但只有當圖像以其原始大小顯示^^ – zeroflagL

+0

好了,問題出在這裏......我的圖像可能會調整大小,因爲我正在使用這個在響應式設計,所以我永遠不知道圖像的寬度會是什麼......順便試一下你的解決方案,我沒有得到任何控制檯日誌。仍然看起來像這個事件有問題,因爲它永遠不會觸發 – horin