单击 radio使在 "选中" 与 "未选中" 之间切换

本文收录各位神的教诲


<input type="radio" class="rad" name="a" id="id1" value="mm1" />
<input type="radio" class="rad" name="a" id="id2" value="mm2" />


ssddi456 提供的方法

$(".rad").mouseup(

    function(){
        alert($(this).is(":checked"));
        if($(this).is(":checked")){
            var j_this = $(this);
            setTimeout(function(){j_this.attr("checked" , false);} , 100);//永远执行到这里
        }
    }

);



这样是不行的

$(".rad").mouseup(
    function(){
        alert($(this).is(":checked"));
        if($(this).is(":checked")){
            var j_this = $(this);
            j_this.attr("checked" , false);
        }
    }
);


hehe123 的解释

延时 0,  !== 0.
就这样.
0 !== 0
他脱离了上一个执行序列.

往浏览器方面说, 浏览器有个最小计时, 也就是 用了 setTimeout / setInterval, 最小的单位都不会是 0 , 即使你设置了 0 (比如前面他们说的浏览器的最小 10, 16ms 等)

往代码角度上来说, 设置 setTimeout/ setInterval, 本来就脱离了原来的执行顺序. 他会等到这个 作用域内不需要太多时间的代码执行完成后再根据设置的时间执行刚刚这个.

其他人的方法:

或者用复选框做,搞个互斥逻辑



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值