2011-06-18 63 views
1

我想要用戶jquery添加/刪除一對包含背景圖像的div類。 div/image意味着作爲一對隱藏無線電盒子的收音機箱。更改單選按鈕值並添加類與jquery

單擊div/image時,腳本應該將'selected'類應用於點擊的div並將其從另一個div中移除(如果需要);並選擇適當的隱藏單選按鈕。

據我所知,下面的腳本應該可以工作,但不是,我不確定我現在做錯了什麼。任何想法堆垛機?

SCRIPT

$("div#like").click(function() { 
    var $radios = $('input:radio[name=vote]'); 
    $("div#dislike").removeClass("selected"); 
    $("div#like").addClass("selected"); 
     $radios.filter('[value=likes]').attr('checked', true); 
}); 

$("div#dislike").click(function() { 
    var $radios = $('input:radio[name=vote]'); 
    $("div#like").removeClass("selected"); 
    $("div#dislike").addClass("selected"); 
     $radios.filter('[value=likes]').attr('checked', true); 
}); 

HTML

<form action="createComment.php" method="post"> 
<div id="like" ><input class="like" type="radio" name="vote" value="likes" /></div>&nbsp; 
<div id="dislike" ><input class="dislike" type="radio" name="vote" value="dislikes" /></div><br/> 
</form> 

[編輯下午3點07分] 如果我去了這條路?

$("div#like").click(function() { 
    var $radios = $('input:radio[name=vote]'); 
     $("div#dislike").removeClass("selected"); 
     $("div#like").addClass("selected"); 
     $radios.filter('[value=likes]').attr('checked', true); 
     $radios.filter('[value=dislikes]').attr('checked', false); 
    }); 

$("div#dislike").click(function() { 
    var $radios = $('input:radio[name=vote]'); 
     $("div#like").removeClass("selected"); 
     $("div#dislike").addClass("selected"); 
     $radios.filter('[value=dislikes]').attr('checked', true); 
     $radios.filter('[value=likes]').attr('checked', false); 
    }); 
+0

它是否適合你現在的工作?您已更正您設定要檢查的按鈕,所以它在我看來應該是。實際上,它不起作用 - 你應該在那裏放置attr(「checked」,true)。 – kinakuta

+0

查看jquery文檔的設置選中:http://docs.jquery.com/Frequently_Asked_Questions#How_do_I_check.2Funcheck_a_checkbox_input_or_radio_button.3F – kinakuta

+0

它的工作原理,但是當我將它集成到我的網站它仍然沒有。 – VikingGoat

回答

1

請勿使用javascript設置屬性checked="checked"。相反,使用

radioButton.checked = true

使用jQuery你可以做,

$radios.filter('[value=likes]').get(0).checked = true 

這裏是你一個很好的小例子,http://jsfiddle.net/cu2y8/6/

+0

如果我走這條路線怎麼辦? (請參閱我的最新編輯3:07 pm) – VikingGoat

+0

實際上,使用javascript設置checked屬性不會更新它。您需要設置radio元素的checked屬性才能使其工作。 –

0

無論點擊哪個div,您都將[checked = likes]按鈕設置爲true。

確保在單擊不喜歡div時選擇[value = dislikes]按鈕。