Jquery 使函数更加可重用

Jquery 使函数更加可重用,jquery,Jquery,我需要运行一个函数,使复选框的行为像单选按钮。我知道,说来话长。无论如何,我想让它更可重用,而不必为每个组重写它。我让它这样工作: $(function() { var $apples = $('input.apples'); $apples.click(function() { $apples.removeAttr('checked'); $(this).attr('checked', true); }); }); 我怎样才能使它更全球

我需要运行一个函数,使复选框的行为像单选按钮。我知道,说来话长。无论如何,我想让它更可重用,而不必为每个组重写它。我让它这样工作:

$(function() {
    var $apples = $('input.apples');
    $apples.click(function() {
        $apples.removeAttr('checked');
        $(this).attr('checked', true);
    });
});
我怎样才能使它更全球化,这样如果我有另一组复选框。bannanas,它也可以为他们工作,而不必重写它

thx使用选择器:

'input:checkbox'
'input:checkbox.makeRadio'
或者,如果只应更改某些复选框,则向选择器添加一个类:

'input:checkbox'
'input:checkbox.makeRadio'
并将该类添加到要更改的复选框中。

使用选择器:

'input:checkbox'
'input:checkbox.makeRadio'
或者,如果只应更改某些复选框,则向选择器添加一个类:

'input:checkbox'
'input:checkbox.makeRadio'
并将该类添加到要更改的复选框中。

制作插件:

示例:


编辑:根据下面评论中的要求,要在双击时取消选中复选框,请执行以下操作:

示例:

制作一个插件:

示例:


编辑:根据下面评论中的要求,要在双击时取消选中复选框,请执行以下操作:

示例:


如果假设每组复选框都具有相同的
class
属性,则可以使用以下方法自动执行:

$(function() {
    var checkboxes = $('input:checkbox.asRadio');
    checkboxes.click(function() {
        var myClass = $(this).attr('class');
        checkboxes.each(function() {
            if($(this).attr('class') == myClass) $(this).removeAttr('checked');
        });
        $(this).attr('checked', true);
    });
});

其中,要用作无线电字段的复选框也具有“asRadio”类。

如果假设每组复选框具有相同的
属性,则可以使用以下方法将其自动化:

$(function() {
    var checkboxes = $('input:checkbox.asRadio');
    checkboxes.click(function() {
        var myClass = $(this).attr('class');
        checkboxes.each(function() {
            if($(this).attr('class') == myClass) $(this).removeAttr('checked');
        });
        $(this).attr('checked', true);
    });
});

如果要用作无线电字段的复选框也有“asRadio”类。

对不起,“global”一词用错了。它应该读为“可重用”,如果您选中“bannana”复选框,该复选框是否会取消选中“apple”复选框?我需要将这两个组分开。使用他的第二个示例,将class
makeRadio
添加到所有要像收音机一样工作的复选框中。它们只需要对它们的组或类具有这种行为。从“苹果”中勾选一个不应该取消从“班纳纳斯”中勾选一个,如果它们具有相同的类,那么会取消勾选,对吗?对不起,“全局”是一个错误的词。它应该读为“可重用”,如果您选中“bannana”复选框,该复选框是否会取消选中“apple”复选框?我需要将这两个组分开。使用他的第二个示例,将class
makeRadio
添加到所有要像收音机一样工作的复选框中。它们只需要对它们的组或类具有这种行为。选中“苹果”中的一个不应该取消选中“bannanas”中的一个,如果它们具有相同的类,对吗?如何将“双击”复选框与此结合使用?@Dirty Bird Design:Add
.dblclick(函数({$items.removeAttr('checked');});
之后单击()
call。我也更新了我的答案。如何使“双击”复选框与此结合起来?@Dirty Bird Design:Add
.dblclick(函数({$items.removeAttr('checked');});
调用之后。click()
我也更新了我的答案。