javascript将函数名作为参数传递,不适用于jquery显示隐藏
javascript pass function name as parameter not working with jquery show hide
这里有一个非常非常简单的例子。
我试图传递一个函数名"show"或"hide"作为参数。
但它不起作用,你能帮忙吗?
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');
}
Hoever,它仍然非常丑陋。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');
}
相关文章:
- HTML5 Canvas toDataURL(“image/png”)适用于一些绘画,而有些则不然,不确定原因
- JavaScript不显示剩余字符,但适用于其他页面
- 我如何完善这个Javascript代码,使其只适用于来自图像的链接(而不是来自文本的链接)
- 为什么这只适用于身体部分而不是头部
- 为什么不't此正则表达式适用于重复出现的对
- document.getElementById 对内部 html 的调用适用于 $_POST 和 $_GET 变量,但不
- JavaScript 位置适用于本地主机而不是服务器
- Rally App SDK 2.0:Rallymultiobjectpicker,适用于不显示displayField的
- jQuery事件在Mozilla上不起作用,并且适用于其他浏览器
- Angular.js - 控制器不为索引执行,适用于其余模板
- D3 .on 更改适用于文本而不是图表
- Zillow 数据 - json_encode不起作用 - 适用于常规变量
- 弹出模式仅适用于表格中的第一个元素,第二次单击后不会再次打开
- Phonegap Android项目适用于模拟器,而不是实际的手机
- ajax jonp 不应该适用于 请求的上不存在“访问控制-允许源”标头
- AngularJS:ng-单击不起作用,适用于<按钮>
- Javascript不会在移动设备上加载.适用于桌面
- 为什么我的代码适用于高度:100px,而不是高度:100%
- 拖放区.js + Laravel-多文件上传不起作用(仅适用于一个文件)
- 哪些限制适用于不透明响应