这对我来说代码工作正常,但仅使用默认的HTML单选按钮控件
$('.block1').on("click", function(event){
$('.block1').prop('checked', false);
$(this).prop('checked', true);
});
http://sfiddle.net/bAhmed/zNq9R
但是当我通过$(“。col-lg-4”)。buttonset();更改单选按钮的默认UI时。
那么上面的代码对我不起作用。当它改变行为或应用jquery-ui.css和jquery.js的其他一些默认类时
最终目标是取消选中.block1类的所有其他单选按钮,但在应用.buttonset()之后
最佳答案
从提供的信息中很难分辨出您的问题到底是什么,但是在我看来,您的问题可能是由jQuery UI的buttonset
函数进行的DOM重排引起的。
看来您之前迷上了直接在单选按钮输入元素上触发的'click'
事件。调用buttonset()
后,jQuery UI会折叠在其上注册了单击处理程序的输入元素,使它们不可单击。因此,如果要在调用buttonset
函数之后挂接到按钮集中的click事件,则必须在调用buttonset
函数之后在其他元素集上注册处理程序。我建议使用jQuery UI创建的标签元素。您的代码可能看起来像这样:
$(function() {
$(".col-lg-4")
.buttonset()
.find('label.ui-button')
.on('click', function() {
$('.block1').prop('checked', false).button('refresh');
var targetId = '#' + $(this).attr('for');
$(targetId).prop('checked', true).button('refresh');
});
});
希望有帮助!