2011-07-14 12 views
1

私はmaページに2つのdivを持っています。私は1つを示し、別のものを隠したい。すべて同じ場所(ページ内の位置)で発生します。私はreplacewithを使用しました。それはうまく動作します。しかし、置き換えられたdivでは、jQueryアクション/クリックは機能しません。それはこれを行うための最善の方法ですか?あるdivを別の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 ")トグル("遅い ")でも可能です。 ; ':http://jsbin.com/egujoj –

+0

@ James Hill - クリックしたときにボタンのテキストを切り替えることはできますか? – 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

関連する問題