4im*_*ble 4 javascript jquery refactoring dry
我想将此函数传递给True或False,并在此输入上列出元素show(true)或hide(false).
我目前正在使用这个功能......
function SetElementVisibility(visible) {
if (visible) {
$("#Div1").show("slow");
$("#Div2").show("slow");
$("#Div3").show("slow");
}
else {
$("#Div1").hide("slow");
$("#Div2").hide("slow");
$("#Div3").hide("slow");
}
}
Run Code Online (Sandbox Code Playgroud)
但我宁愿不为每个结果命名Div.重复自己.
我怎样才能将其重构为更干(不要重复自己)的例子?
谢谢,Kohan
使用方括号表示法根据visible变量选择方法名称:
$('#Div1, #Div2, #Div3')[visible? 'show' : 'hide']('slow');
Run Code Online (Sandbox Code Playgroud)
这应该工作:
function SetElementVisibility(visible) {
$("#Div1,#Div2,#Div3")[visible]("slow");
}
// Display all
SetElementVisibility( "show" );
// Hide all
SetElementVisibility( "hide" );
Run Code Online (Sandbox Code Playgroud)
如果你不想使用"show"并"hide"作为参数,但true和false你将不得不改变它一点点:
function SetElementVisibility(visible) {
$("#Div1,#Div2,#Div3")[visible?'show':'hide']("slow");
}
// Display all
SetElementVisibility( true );
// Hide all
SetElementVisibility( false );
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1038 次 |
| 最近记录: |