我以为我这样做是对的,但它不起作用。我觉得我很蠢......
function expand(){
var wide = $(this).css('width');
var high = $(this).css('height');
var newwide = wide * 10;
var newhigh = high * 10;
$(this).animate({'width':newwide,'height':newhigh}, 2000);
}
$('.object1').expand();
我只想在div上使用'object1'类运行'expand'函数,我做错了什么?
由于
答案 0 :(得分:4)
在jQuery中,要添加自定义函数,可以这样做:
(function($){
$.fn.myFunction = function() {
//Custom Function
}
})(jQuery);
因此,您的代码应如下所示:
(function($){
$.fn.expand = function() {
var wide = $(this).css('width');
var high = $(this).css('height');
var newwide = wide * 10;
var newhigh = high * 10;
$(this).animate({'width':newwide,'height':newhigh}, 2000);
}
})(jQuery);
答案 1 :(得分:2)
尝试重写这样的代码,
function expand($this){
var wide = $this.css('width');
var high = $this.css('height');
var newwide = wide * 10;
var newhigh = high * 10;
$this.animate({'width':newwide,'height':newhigh}, 2000);
}
expand($('.object1'));
答案 2 :(得分:0)
$
对象如何知道它现在有expand()
方法?
如果你真的想要一个 jQuery插件(这是他们在jQuery对象上附加内容时所称的那个),你必须将它附加到$.fn
:
$.fn.expand = expand // as you defined it earlier
你几乎肯定不想要这个。创建您要实现的目标的是将$('.object1')
作为expand()
的参数:
function expand($element){
var wide = $element.css('width');
var high = $element.css('height');
var newwide = wide * 10;
var newhigh = high * 10;
$element.animate({'width':newwide,'height':newhigh}, 2000);
}
expand($('.object1'));