我尝试过搜索 - 也许我的术语已关闭,但我无法找到答案。我试图创建一个插件,我可以通过函数传递一个css属性名称。这就是我所拥有的,但它只有在我用实际的属性名称替换param时才有效...
(function($){
$.fn.clickPlugin = function(param){
$(this).animate({param:'100px'});
};
}(jQuery));
$('.click').click(function(){
$(this).clickPlugin('height');
});
Any help would be awesome
答案 0 :(得分:2)
您必须使用obj[name]
语法为这样的属性使用变量名称:
(function($){
$.fn.clickPlugin = function(param){
var obj = {};
obj[param] = '100px';
this.animate(obj);
};
}(jQuery));
工作演示:http://jsfiddle.net/jfriend00/2q5m4/
要使用变量名称,您必须为其分配代码。无法在静态对象声明中为属性使用变量名称。因此,上面的代码创建了对象,然后使用JS行分配属性。
仅供参考,在jQuery插件方法中,this
已经是主机jQuery对象,因此您不必将其包装在$(this)
中以将其用作jQuery对象。