2011-07-14 76 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