本帖最后由 kinghome 于 2013-06-06 19:27:07 编辑

解决方案 »

  1.   

    var target = $(e.currentTarget),
    console.log(target);看看 每次触发的对象是那个
      

  2.   

    var setStateVal = stuta ? false:true;
      

  3.   


    <label>Man<input type="radio" value="man" name="sex" style="display:none"/></label>
    吧input放在label标签外面
    <label>Man</label>
    <input type="radio" value="man" name="sex" style="display:none"/>
      

  4.   

    问题出在label元素上,label 比较特殊,点击label时会触发其此标签相关的表单控件的点击事件。
    这样,点击label时,label的事件冒泡给父级元素fieldset,同时出发radio元素的点击事件,也冒泡给祖先元素fieldset,所以fieldset上的点击事件触发两次。这也说明另一个现象:只有点击label里面的文字时才会触发两次,点击之外的区域只触发一次。