click()上的jquery问题

时间:2014-06-11 00:35:35

标签: javascript jquery html

<script type="text/javascript">
$(document).ready(function(){
    $("input[name='trim']").click(function (event) {
        if ($(this).val() == "deluxe") {
            $("input[name='option']").attr("checked", true);
        } else if ($(this).val() == "plain") {
            $("input[name='option']").attr("checked", false);
        }
    });
    $("input[name='option']").click(function(event){
        $("#custom").attr("checked","checked");
    });
});
</script>

这是收音机和点击按钮问题。首先我点击豪华按钮,检查按钮工作正常。然后我点击普通按钮它也可以正常工作。然后我重新点击豪华按钮,检查按钮赢了工作。然后我尝试测试自定义按钮。单击普通按钮后,它无法正常工作。有谁知道发生了什么?顺便说一句,平原从一开始就很好。

2 个答案:

答案 0 :(得分:0)

你应该使用jQuery prop()而不是attr()。 attr()是越野车。

答案 1 :(得分:0)

使用以下代码,这是一个很棒的jQuery扩展。它将接受1,0,'1','0',true,false和unidentified。要查看我的fiddle,我也会发布您的用法。

(function( $ ) {

  $.fn.checked = function(value) {

    if(value === true || value === false) {
        // Set the value of the checkbox
        $(this).each(function(){ this.checked = value; });
    } else if(value === undefined || value === 'toggle') {
        // Toggle the checkbox
        $(this).each(function(){ this.checked = !this.checked; });
    } else if(value === 1 || value === '1') {
        $(this).each(function(){ this.checked = true; });
    } else if(value === 0 || value === '0') {
        $(this).each(function(){ this.checked = false; });
    }
    return this;
  };

})( jQuery );

您的用法如下:

$("input[name='trim']").click(function (event) {
    if ($(this).val() == "deluxe") {
        $("input[name='option']").checked(1);
    } else if ($(this).val() == "plain") {
        $("input[name='option']").checked(0);
    }
});
$("input[name='option']").click(function(event){
    $("#custom").checked(1);
});