Jquery访问插件中的$(this)

时间:2011-02-12 08:48:33

标签: jquery

初始化插件时有没有办法获得$(this)的访问权限?例如,我有一个可调整大小的插件,我需要访问正在调整大小的元素,所以我稍后可以在插件中声明的方法中使用它

$('.someClass').resizable({  
  resize:function(event, ui) {
   $(this).doSomeStuff() //how to get access to $(this)? Where it should be declared?
  }
})

我已经找到了解决方案:

$('.someClass').each(function(){ 
  var me = $(this); 
  $(me).resizable({     
    resize: function(event, ui) { 
          $(me).doSomeStuff();
        }
   });
});

所有这一切只是为了确保插件位于$('')。each()方法

2 个答案:

答案 0 :(得分:1)

它是范围问题,因此将元素缓存在变量中:

var elem = $('.someClass');
elem.resizable({  
  resize:function(event, ui) {
   elem.doSomeStuff() //how to get access to $(this)? Where it should be declared?
  }
});

修改

n.b。记录'event','ui'到控制台应该澄清这些args为你提供的内容,同时检查api文档:http://docs.jquery.com/UI/Resizable

$('.someClass').resizable({  
  resize:function(event, ui) {
   console.log(event);
   console.log(ui);
  }
});

答案 1 :(得分:1)

$("textarea").resizable({
    stop: function (evt, ui) {
        $(this).find(':input').focus();
    }
});