2013-11-28 87 views
0

我有一個div,被添加到我的HTML與追加...jquery + div不會正確隱藏.hide()何時有屬性塊嗎?

然後,我$('#'+q).hide();把它藏在q是我的div的變量名。

這工作100%。

當觸發我然後顯示與$('#'+q).show(); div。再次這工作100%和div顯示。

我的問題是,當我想再次隱藏它時,$('#'+q).hide();不起作用。沒有JavaScript錯誤,它根本不起作用。

生成的HTML中,當顯示在div是: <div id="30" class="form" style="display: block;">

我試圖隱藏這個div與$('#'+q).hide();其中變量q = 30。我已確認q的值。

這不起作用的HTML保持不變。

firebug突出顯示html時$('#'+q).hide();被調用,但不會改變它,所以它似乎得到刷新,只是不正確如此。

任何想法apprecaited。

謝謝你一樣,問候

+0

聽起來像委派問題? – Alvaro

+0

你可以在上下文中顯示你的代碼嗎?理想情況下,如果你可以將它降低到最低限度的樣本,那麼它將顯示http://jsfiddle.net上的問題,這真的會幫助我們幫助你。 _「這不起作用的HTML保持不變」_ - 你在看什麼HTML?瀏覽器在更改頁面時不會更新頁面的html,它會更新DOM。 – nnnnnn

回答

0

嘗試隱藏是以其他方式。

$('#'+q).css('display','none'); 

.hide()函數內部改變display:none屬性display:block。所以如果你.hide()由於某種原因不工作,那麼你可以嘗試上面的代碼。 同樣適用於.show真()以及即

$('#'+q).css('display','block'); 

可用於.show()

+0

請提供一些更詳細的信息,也就是說爲什麼這可以解決問題,如果可能的話還有相關的文檔鏈接。 – arne

+0

當然會。謝謝你的評論。 – Kishori

+0

關於你的解釋,如果'.hide()'試圖在內部做到這一點,它不起作用,爲什麼要用'.css()'工作呢? – nnnnnn

0

首先,您可以使用FireFox Web Developer插件在通過JS/Jquery進行更改後查看生成的代碼。 Firefox Web Developer PlugIn

使用toggle()顯示和隱藏元素更容易。 你可以發佈觸發你的元素show()hide()函數的代碼嗎?

我試圖複製一些代碼在下面的例子:

Fiddle example

有一個塊的div:

<div id="30" class="form" style="display: block;">I am there</div> 
<button>Toggle</button> 

你隱藏:

然後你可以用按鈕切換它:

$("button").click(function() { 
    $("#30").toggle(); 
}); 

追加div和按鈕,將身體的代碼看起來像:

Fiddle example

$("body").append('<div id="30" class="form" style="display: block;">I am there</div><button>Toggle</button>'); 
$("#30").hide(); 
$("button").click(function() { 
    $("#30").toggle(); 
}); 

希望這有助於。