2009-10-06 153 views
0

有人可以告訴我爲什麼這個腳本不工作嗎?它應該工作,但它不,我得到正確的ID,但Divs不正確顯示。我的想法是根據點擊顯示一個div,並隱藏其他Div。jQuery .live函數不能正常工作

腳本

$(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> 

回答

5

你的div編號是錯誤的。 嘗試:

<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; 
}); 
+0

感謝Ghommey ......它的工作對我來說..但是當我點擊一個div,它得到正確顯示,當第二個鏈接被點擊時,第一個DIV仍然是可見的..我如何隱藏未點擊的鏈接的div? – Sullan 2009-10-07 06:24:06

+0

我向我的帖子添加了一個工作解決方案。 – jantimon 2009-10-07 07:25:51

+0

謝謝Ghommey ..但我的頂部鏈接也點擊它時隱藏? – Sullan 2009-10-07 11:17:49

0

你打算重用的ID屬性。 ID需要對文檔是唯一的。

你不能有錨和div具有相同的ID。

+0

是的我是如此愚蠢的使用鏈接和div的相同屬性。即使在我改變標題爲標題後,我仍然無法查看div的點擊... – Sullan 2009-10-07 06:18:35

1

MMMM錯誤實際上是沒有人..

見:

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

將其更改爲:

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