答案 0 :(得分:2)
$(function(){
$(".options > label").live("click", function(event)
{
radio_value = $(this).prev("input[type='radio']").val();
$("#clicked").html(radio_value);
});
});
答案 1 :(得分:0)
$(".options > label").live("click", function(event)
{
radio_value = $(this).prev(":radio").val();
$("#clicked").html(radio_value);
});
如果你想使用jQuery> 1.7然后你可以这样做:
$(".options").on("click", "label", function(event)
{
radio_value = $(this).prev(":radio").val();
$("#clicked").html(radio_value);
});
您需要.prev()
,因为您将点击事件绑定到label
并将radio
绑定到上一个元素。
答案 2 :(得分:0)
试试这个:
$(".options > label").live("click", function(event)
{
radio_value = $("#" + $(this).attr('for')).val();
$("#clicked").html(radio_value);
});
答案 3 :(得分:0)
尝试延迟回调:
$(".options > label").live("click", function(event) {
setTimeout(function() {
radio_value = $("input[name='size']:checked").val();
$("#clicked").html(radio_value);
}, 0)();
});
答案 4 :(得分:0)
$(".options > input[name='size']").live("click", function(event)
{
radio_value = $(this).val();
$("#clicked").html(radio_value);
});
您的代码绑定标签的click事件,该事件在您获得无线电的值之前发生。你应该绑定输入[name ='size'],然后它就可以了。
答案 5 :(得分:-1)
将您的代码更改为:
$("input[name='size']").live("change", function(event)
{
radio_value = $("input[name='size']:checked").val();
$("#clicked").html(radio_value);
});
在更改单选按钮之前,会在标签上触发click
事件。所以你应该回应这个改变。