jQuery .live功能不起作用

时间:2009-10-06 08:31:18

标签: javascript jquery css-selectors

有人可以告诉我为什么这个剧本不起作用?它应该工作,但它没有,我正确得到id,但Divs没有正确显示。我的想法是根据点击显示一个div,并隐藏其他Div。

脚本

$(document).ready(function() {
    $("a").live("click", function(){
    var idV = $(this).attr("id"); 
    alert(idV);
    $("#"+idV+"div").css("display","block");
    return false;
    });
});

HTML

<a href="#" id="solution1">Solution 1</a>
<a href="#" id="solution2">Solution 2</a>
<a href="#" id="solution3">Solution 3</a>
<a href="#" id="solution4">Solution 4</a>
<br />

<div id="solution1" style="display:none;">Solution 1</div>
<div id="solution2" style="display:none;">Solution 2</div>
<div id="solution3" style="display:none;">Solution 3</div>
<div id="solution4" style="display:none;">Solution 4</div>

3 个答案:

答案 0 :(得分:5)

你的div ids是错误的。 尝试:

<div id="solution1div" style="display:none;">Solution 1</div>

而不是

<div id="solution1" style="display:none;">Solution 1</div>

编辑:

<强> JSBIN: Preview

<强> JSBIN: Source Code

<a href="javascript:;" id="solution1">Solution 1</a> 
<a href="javascript:;" id="solution2">Solution 2</a> 
<a href="javascript:;" id="solution3">Solution 3</a> 
<a href="javascript:;" id="solution4">Solution 4</a> 
<br /> 

<div> 
<div id="solution1div" style="display:none;">Solution 1</div> 
<div id="solution2div" style="display:none;">Solution 2</div> 
<div id="solution3div" style="display:none;">Solution 3</div> 
<div id="solution4div" style="display:none;">Solution 4</div> 
</div> 

jquery的:

$("a").live("click", function(){ 
var idV = $(this).attr("id");  

$("#"+idV+"div").siblings().hide(); 
$("#"+idV+"div").show(); 

return false; 
}); 

答案 1 :(得分:1)

mmmm错误实际上是男人..

请参阅:

$("#"+idV+".div").css("display","block");

将其更改为:

$("div#"+idV).css("display","block");

答案 2 :(得分:0)

您正在重复使用ID属性。 ID必须是文档的唯一。

您不能拥有具有相同ID的锚点和div。