Jquery 如何使此函数适用于所有实例
如何将多个函数组合成一个通用函数来完成相同的任务 HTML输入示例Jquery 如何使此函数适用于所有实例,jquery,Jquery,如何将多个函数组合成一个通用函数来完成相同的任务 HTML输入示例 <input type="checkbox" name="fname_checkbox" id="fname_checkbox" class="fname" checked="checked" onclick="ss_checkbox()"><label for="fname_che
<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更改,我选择了其他响应。