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

来源:互联网 发布:315曝光的淘宝代购店铺 编辑:程序博客网 时间:2024/04/28 05:33

本文收录各位神的教诲


<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, 本来就脱离了原来的执行顺序. 他会等到这个 作用域内不需要太多时间的代码执行完成后再根据设置的时间执行刚刚这个.

其他人的方法:

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



原创粉丝点击