请查看以下内容:
jQuery.fn.jqPos = function(target, settings) {
settings = jQuery.extend({
offset: [ 0, 0 ]
}, settings);
return this.each(function() {
magic($(this), target, settings);
$(window).resize(function(){
magic($(this), target, settings);
});
});
function magic(self, target, settings) {
// Here I position self close to target
}
};
当我第一次初始化插件时,这非常有效,例如$('div#one').jqPos($('div#two'));
,魔术方法应该运行。但是在事件window.resize
没有任何反应(我希望它使用相同的设置和参数运行相同的方法)!
为什么?以及如何克服?
编辑:在magic-method(在window.resize中),参数都是undefined
。
答案 0 :(得分:1)
您对this
$(window).resize(function(){
magic($(this), target, settings);
});
中this
所指的内容不再引用您的元素而非window
本身感到困惑。尝试:
return this.each(function() {
var $this = $(this);
magic($this, target, settings);
$(window).resize(function(){
magic($this, target, settings);
});
});