我正在尝试使用jquery在一对由背景图像组成的div上添加/删除一个类。 div / image旨在充当一对隐藏无线电盒的无线电盒。
单击div / image时,脚本应将“selected”类应用于单击的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>
<div id="dislike" ><input class="dislike" type="radio" name="vote" value="dislikes" /></div><br/>
</form>
[编辑3:07 PM] 如果我走这条路怎么办?
$("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 :(得分:1)
不要使用javascript设置属性checked="checked"
。相反,使用
radioButton.checked = true
使用jquery,你可以做到,
$radios.filter('[value=likes]').get(0).checked = true
这是一个很好的小例子,http://jsfiddle.net/cu2y8/6/
答案 1 :(得分:0)
无论点击哪个div,都会在[value = likes]按钮上将checked设置为true。
确保在单击不喜欢div时选择[value = dislikes]按钮。