Jquery 标签火点击功能两次

Jquery 标签火点击功能两次,jquery,click,label,Jquery,Click,Label,是否有方法通过单击标签来调用函数并同时保存radiobutton上的效果 示例(我需要通过单击单选按钮的标签来打开/关闭带有复选框的字段集) 单击标签 $(文档).ready(函数(){ 手风琴选项(); }); 函数accordionOptions(){ $(“label.legend,label.childless”)。单击(函数(事件){ var-opposities=$(“.subtype”).not($(this.next()); var el=$(此); 相反。查找(“输入

是否有方法通过单击标签来调用函数并同时保存radiobutton上的效果

示例(我需要通过单击单选按钮的标签来打开/关闭带有复选框的字段集)




单击标签


$(文档).ready(函数(){
手风琴选项();
});

函数accordionOptions(){
$(“label.legend,label.childless”)。单击(函数(事件){
var-opposities=$(“.subtype”).not($(this.next());
var el=$(此);
相反。查找(“输入:选中”).attr('checked',false);
相反。删除类(“扩展”);
el.兄弟姐妹(“标签”).removeClass(“扩展”);
el.next(“.subtype”).toggleClass(“扩展”);
el.toggleClass(“扩展”);
});
}







第0100项

第0101项
第0102项

项目0200
项目0300

第0301项
第0302项

提交



。。。然后用化妆品把无线电标签贴在适当的地方


。。。然后是一些化妆品,以便将单选标签放在适当的位置。

使用单选按钮上的焦点事件

试试这个:

<script type="text/javascript">
    $(function(){ 
        accordionOptions();
    });
    var accordionOptions = function(){
        $("label.legend > input, label.childless > input").focus(function(event) {
            var el = $(this).parent();
            var opposites = $(".subtype").not(el.next());
            opposites.find("input:checked").attr("checked", false);
            opposites.removeClass("expanded");
            el.siblings("label").removeClass("expanded");
            el.next(".subtype").toggleClass("expanded");
            el.toggleClass("expanded");
        });
    }
</script>

$(函数(){
手风琴选项();
});
var accordionOptions=函数(){
$(“label.legend>input,label.childless>input”).focus(函数(事件){
var el=$(this.parent();
var-opposities=$(“.subtype”).not(el.next());
相反项。查找(“输入:选中”).attr(“选中”,false);
相反。移除类(“扩展”);
el.兄弟姐妹(“标签”)。removeClass(“扩展”);
el.next(“.subtype”).toggleClass(“扩展”);
el.切换类别(“扩展”);
});
}

改用单选按钮上的焦点事件

试试这个:

<script type="text/javascript">
    $(function(){ 
        accordionOptions();
    });
    var accordionOptions = function(){
        $("label.legend > input, label.childless > input").focus(function(event) {
            var el = $(this).parent();
            var opposites = $(".subtype").not(el.next());
            opposites.find("input:checked").attr("checked", false);
            opposites.removeClass("expanded");
            el.siblings("label").removeClass("expanded");
            el.next(".subtype").toggleClass("expanded");
            el.toggleClass("expanded");
        });
    }
</script>

$(函数(){
手风琴选项();
});
var accordionOptions=函数(){
$(“label.legend>input,label.childless>input”).focus(函数(事件){
var el=$(this.parent();
var-opposities=$(“.subtype”).not(el.next());
相反项。查找(“输入:选中”).attr(“选中”,false);
相反。移除类(“扩展”);
el.兄弟姐妹(“标签”)。removeClass(“扩展”);
el.next(“.subtype”).toggleClass(“扩展”);
el.切换类别(“扩展”);
});
}
在我这方面很有效:

$("label.legend, label.childless").click( function(event){
  var opposites = $(".subtype").not($(this).next());
  var el = $(this);
  opposites.find("input:checked").removeAttr('checked');
  opposites.removeClass("expanded");
  el.siblings("label").removeClass("expanded");
  el.next(".subtype").addClass("expanded");
  el.toggleClass("expanded");
});    
正在将toggleClass替换为addClass。

这在我看来是可行的:

$("label.legend, label.childless").click( function(event){
  var opposites = $(".subtype").not($(this).next());
  var el = $(this);
  opposites.find("input:checked").removeAttr('checked');
  opposites.removeClass("expanded");
  el.siblings("label").removeClass("expanded");
  el.next(".subtype").addClass("expanded");
  el.toggleClass("expanded");
});    

正在将toggleClass交换为addClass。

e.preventDefault()的问题是否阻止标签单击检查单选按钮

更好的解决方案是简单地添加“已检查”快速检查,如下所示:

$("label").click(function(e){
  var rbtn = $(this).find("input");
  if(rbtn.is(':checked')){
    **All the code you want to have happen on click**
  }
)};

e.preventDefault()的问题是否阻止标签单击检查单选按钮

更好的解决方案是简单地添加“已检查”快速检查,如下所示:

$("label").click(function(e){
  var rbtn = $(this).find("input");
  if(rbtn.is(':checked')){
    **All the code you want to have happen on click**
  }
)};

谢谢你,安德鲁。这是一个很酷的解决方案。但在本例中,label和next fieldset.subtype的属性toggleClass无效。如果我们将新的设计规则添加到.expanded类(例如.expanded{display:block!important;background:#FCC}),这将是显而易见的。谢谢,Andrejs。这是一个很酷的解决方案。但是在这种情况下,标签的属性toggleClass和next fieldset.subtype没有效果。如果我们将新的设计规则添加到.expanded类(例如.expanded),这将是显而易见的{display:block!重要;背景:#FCC}。谢谢,Jason。我重复前面的解决方案。这很酷。但是在这种情况下,标签的属性toggleClass和next fieldset.subtype没有效果。如果我们将新的设计规则添加到.expanded类(例如,expanded{display:block!重要;背景:#FCC}。谢谢,Jason。我重复上一个解决方案。这很酷。但在本例中,label和next fieldset.subtype的属性切换类没有任何效果。如果我们将新的设计规则添加到.expanded类(例如.expanded{display:block!important;background:#FCC}。使用
$().change()
。当您单击
单选按钮| |复选框的标签时,
更改事件将被触发。因此,不要尝试修复
单击事件
,只需使用
更改事件
使用
$()。更改()
。当您单击
单选按钮| |复选框的标签时,
更改事件将被触发。因此,不要试图修复
单击事件
,只需使用
更改事件