有没有办法在jQuery中按名称调用方法?例如:
var condition = true;
$('div').execute(condition ? 'show':'hide');
答案 0 :(得分:4)
是的,使用[]
表示法访问jQuery对象的属性(而不是使用.
的文字对象):
$('div')[condition ? 'show' : 'hide']();
你也可以这样做:
$('div').toggle(condition);
http://www.jibbering.com/faq/faq_notes/square_brackets.html
修改:如果您更喜欢自己的编码风格,可以添加以下内容:
$.fn.execute = function(a) {
return this[a].apply(this, [].slice.call(arguments, 1));
}
然后你可以这样做:
$('div').execute(condition ? 'show' : 'hide');
或
$('div').execute(condition ? 'keydown' : 'keyup', function() {...});
答案 1 :(得分:2)
Javascript对象基本上是字典。
var condition = true;
$('div')[condition ? 'show':'hide']();