2009-09-09 115 views
2

你好所有,我很堅持。我需要緊急建議:這裏d是我的html:jQuery的連續選擇DIV

<!-- Beginning of ROW !--> 
<div id="row1"> 
<div id="entry"> 
    free 
    <span>some text</span> 
    <p>DKK</p> 
    <input type="radio" name="red<% Response.Write(counter); %>" id="radio" value="0" /> 
</div> 

<div id="entry"> 
    week 
    <span></span> 
    <p>DKK</p> 
    <input type="radio" name="red<% Response.Write(counter); %>" id="radio2" value="75" /> 
</div> 
</div> 
<!-- End of ROW !--> 

<!-- Beginning of ROW !--> 
<div id="row2"> 
.... same as in row 1 
</div> 
<!-- End of ROW !--> 

nth row .. 

這裏是jQuery的:

$("input").click(function() { 
    $("input").parent("div").css("background", "url(images/div_bg.png)"); 
    $(this).parent("div").css("background", "url(images/div_bg_hover.png)"); 
}); 

我'試圖做...是當我選擇一個無線電輸入它所在的div應該改變背景,並且如果只有一行是完美的,但是例如如果我嘗試選擇第一行中的值,那麼I選擇第二行中的值..無線電輸入所在的第二行中的div會改變背景,但第一行中的div會改變背景RSE本身爲其它背景雖然輸入仍然檢查。這裏就是我想實現

alt text http://i26.tinypic.com/34ythlj.png

,這裏是我實現:

alt text http://i31.tinypic.com/24pweau.jpg

+0

您在第1行有兩個ID爲「entry」的div。這可能會導致您一些問題。 – jrummell 2009-09-09 21:23:43

+0

我將它固定到class =「entry」 – ant 2009-09-09 21:44:27

+0

還有什麼建議嗎? – ant 2009-09-09 22:02:53

回答

3

你的第二行jQuery的目的是什麼?

$("input").parent("div").css("background", "url(images/div_bg.png)"); 

這將重置所有「條目」div的背景。如果我理解你的目標正確,我想你想:

$(this).parent("div").siblings("div.entry").css("background", "url(images/div_bg.png)"); 

這樣,只有你正在改變的條目的兄弟姐妹將得到他們的背景重置。

在旁註中,您有多個具有相同ID的div,這不是一個好主意。

+0

我改變了id條目,類錯誤是,但是當我刪除第二行 $(this).parent(「div」).css(「background」,「url(images/div_bg.png)」); //這個 然後,當我點擊所有我的div變成綠色 – ant 2009-09-09 21:38:36

+0

謝謝你的解決方案 – ant 2009-09-09 22:25:21

0

這行:$("input").parent("div").css("background", "url(images/div_bg.png)"是導致所有其他項目重置爲正常狀態,使您一次只能有1個活動狀態。您可以將其範圍限定在行中,以便每行可以選擇一個項目。

+0

「您可以將其範圍限定在行中,以便每行可以選擇一個項目。」 - 我怎麼做 ?TNX – ant 2009-09-09 21:39:47

0

您只將行爲分配給所單擊的項目,而不是所有選定的輸入框。你可能想要這樣做:

function foo() 
{ 
    $('input :selected').css(bar); 
} 

現在,只要你在輸入事件上獲得一個點擊事件,調用bar。您可能需要修改foo以符合您的規格。

+0

這似乎部分工作,謝謝你,我想我忘了提,只有1無線電可以每行選擇也因此在一排一個DIV可以改變背景 我修改的代碼略有如你所說 $( 「input」)。click(function(){('input:selected')。parent(「div」)。css(「background」,「url(images/div_bg.png)」); $(this ).parent(「div」)。css(「background」,「url(images/div_bg_hover.png)」); – ant 2009-09-09 21:31:48