这是一个非常非常非常简化的示例。
我正在尝试将函数名称“显示”或“隐藏”作为参数传递。
但它不会工作,你能帮忙吗?
if(a==true){
showOrhide (hide);
}else{
showOrhide (show);
}
var showOrhide = function(doThis){
$("#myDiv").doThis();
};
这是一个非常非常非常简化的示例。
我正在尝试将函数名称“显示”或“隐藏”作为参数传递。
但它不会工作,你能帮忙吗?
if(a==true){
showOrhide (hide);
}else{
showOrhide (show);
}
var showOrhide = function(doThis){
$("#myDiv").doThis();
};
它会像这样工作:
var showOrhide = function(doThis) {
$("#myDiv")[doThis]();
};
if(a) {
showOrhide('hide');
} else {
showOrhide('show');
}
但是,它仍然非常丑陋。jQuery 有一个toggle()
方法可以接受一个更合适的布尔参数:
$("#myDiv").toggle(!a);
如果您只想传递show
和hide
函数,则可以只传递它们的名称并以这种方式调用它们:
if(a==true){
showOrhide ('hide');
}else{
showOrhide ('show');
}
function showOrhide (doThis){
$("#myDiv")[doThis]();
};
免责声明:Eval 是邪恶的(引用评论)。请自担风险使用它。以下答案仅用于知识目的。:-)
另一种方式,使用 eval。
var showOrhide = function(doThis){
eval("$('#myDiv')." + doThis + "()");
};
if(false==true){
showOrhide ('hide');
}else{
showOrhide ('show');
}