2011-07-14 109 views
1

我有2個div在ma頁面。我想展示一個並隱藏另一個。全部發生在同一個地方(在頁面中的位置)。我用replacewith。它工作正常。但在替換div沒有jQuery動作/點擊作品。那麼最好的辦法是哪個?替換一個div與另一個

+3

有很多方法可以做到這一點,創建時綁定元素,使用.live(),但它取決於其他因素。你能告訴我們一些代碼嗎? –

+0

+1 @Liam,很清楚'.live()'在這裏是必需的。 –

+0

.live不是必需的。看@我的回答 – genesis

回答

3

看起來好像show(),hide()方法在這裏可以正常工作。是否有理由需要更換整個div?

$("#div1").hide(); 
$("#div2").show(); 

你也可以用一些樣式做,並調用切換的方法來製作動畫了一下:

$("#div1").toggle("slow"); 
$("#div2").toggle("slow"); 

正如在評論中提到,你也可以用一個單一的代碼行切換兩:

$("#div1, #div2").toggle("slow"); 
+0

切換甚至可以是'$(「#div1,#div2」)。toggle(「slow」) ;':http://jsbin.com/egujoj –

+0

@詹姆斯希爾 - 我可以切換按鈕的文本時,它的點擊? – Hacker

+0

@pradeep,是的。如果您使用的是輸入(type =「button」),那麼使用:'$(「#myButton」)。attr('value','Toggle div 1');'。如果你使用'

1
<script> 
$(function(){ 
    $("#show_first").bind('click', function(){ 
     $("#first").show(); 
     $("#second").hide(); 
    }); 
    $("#show_second").bind('click', function(){ 
     $("#second").show(); 
     $("#first").hide(); 
    }); 

    $("#inside").bind('click', function(){ 
     alert('works (first)'); 
    }); 
    $("#inside2").bind('click', function(){ 
     alert('works (second)'); 
    }); 
}); 
</script> 
<div id="first" style="display:none"><span id="inside">Inside <-- click </span> -- first</div> 
<div id="second" style="display:none"><span id="inside2">Inside <-- click </span> -- second</div> 
<div id="show_second">Show second</div> 
<div id="show_first">Show first</div> 

demo