Jquery 如何使此函数适用于所有实例

Jquery 如何使此函数适用于所有实例,jquery,Jquery,如何将多个函数组合成一个通用函数来完成相同的任务 HTML输入示例 <input type="checkbox" name="fname_checkbox" id="fname_checkbox" class="fname" checked="checked" onclick="ss_checkbox()"><label for="fname_che

如何将多个函数组合成一个通用函数来完成相同的任务

HTML输入示例

<input type="checkbox" name="fname_checkbox" id="fname_checkbox" class="fname" checked="checked" onclick="ss_checkbox()"><label for="fname_checkbox">INPUT 1</label>

<input type="checkbox" name="ficonname_checkbox" id="ficonname_checkbox" class="ficonname" checked="checked" onclick="ss_checkbox1()"><label for="ficonname_checkbox">INPUT 2<</label>
对于每个输入,我都有一个ss_checkbox函数来隐藏和显示div内容。我如何组合这些函数以及更多类似的函数,将复选框类名与div类名匹配,并隐藏和显示它们

<div class="fname"></div>
<div class="ficonname"></div>

问题 jQuery代码需要硬编码,函数需要复制,因为包装函数中没有使用参数。此外,使用jQuery时通常不需要“onclick”,您可以使用.click方法在JavaScript中保留所有元素绑定逻辑

解决方案 通过使用变量传入元素标识符进行DRY

function ss_checkbox(checkbox, filter_name){
    $(checkbox).change(function(){
        if(this.checked)
            $(filter_name).show();
        else
            $(filter_name).hide();
    });
}

$(“.input_field_1”).click(function() { ss_checkbox(“.checkbox”, “.filter_name”) })

$(“.input_field_2”).click(function() { ss_checkbox(“.checkbox”, “.filter_name_2”) })

工具书类 jQuery单击事件绑定: jQuery常规事件绑定:

问题 jQuery代码需要硬编码,函数需要复制,因为包装函数中没有使用参数。此外,使用jQuery时通常不需要“onclick”,您可以使用.click方法在JavaScript中保留所有元素绑定逻辑

解决方案 通过使用变量传入元素标识符进行DRY

function ss_checkbox(checkbox, filter_name){
    $(checkbox).change(function(){
        if(this.checked)
            $(filter_name).show();
        else
            $(filter_name).hide();
    });
}

$(“.input_field_1”).click(function() { ss_checkbox(“.checkbox”, “.filter_name”) })

$(“.input_field_2”).click(function() { ss_checkbox(“.checkbox”, “.filter_name_2”) })

工具书类 jQuery单击事件绑定:
jQuery通用事件绑定:

这里是
动态
和更简单的方法,无需编写大量
代码。您需要在输入中使用函数not
onclick
,并将
作为
参数传递给
,该参数
引用了对其进行更改的元素

在您的函数中,
ss\u复选框(e)
获取该复选框,并检查它将成为您的
输入的

检查输入是否被选中,并且
是否与
DOM
中的任何元素匹配,该元素是
div
,然后我们可以
显示该元素
否则
我们可以
隐藏该元素

现场工作演示:

函数ss\u复选框(e){
让getClass=$(e).attr('class')//获取类名
如果($(e).is(':checked')){
$('div.+getClass+'').show();
}否则{
$('div.+getClass+'').hide();
}
}

输入1
输入2
输入2
文件名
菲康名

废话
这里是
动态
和更简单的方法,无需编写大量
代码。您需要在输入中使用函数not
onclick
,并将
作为
参数传递给
,该参数
引用了对其进行更改的元素

在您的函数中,
ss\u复选框(e)
获取该复选框,并检查它将成为您的
输入的

检查输入是否被选中,并且
是否与
DOM
中的任何元素匹配,该元素是
div
,然后我们可以
显示该元素
否则
我们可以
隐藏该元素

现场工作演示:

函数ss\u复选框(e){
让getClass=$(e).attr('class')//获取类名
如果($(e).is(':checked')){
$('div.+getClass+'').show();
}否则{
$('div.+getClass+'').hide();
}
}

输入1
输入2
输入2
文件名
菲康名

blah
谢谢你的回答,但是没有真正需要的HTML更改,我选择了其他响应。谢谢你的回答,但是没有真正需要的HTML更改,我选择了其他响应。