按类将函数应用于div

时间:2015-08-13 14:26:55

标签: javascript jquery css

我以为我这样做是对的,但它不起作用。我觉得我很蠢......

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'函数,我做错了什么?

由于

3 个答案:

答案 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);

Learn More

答案 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'));