我在将一个对象作为选项传递给插件的上下文时遇到了一些问题。我调用该函数,但是当插件执行时,“attach”的上下文会发生变化。
$(document).ready(function() {
$('article > header').stickyHeader({
attach: $(this).siblings('h2')
});
});
$.fn.stickyHeader = function(settings) {
// settings
settings = $.extend({
attach: false
}, settings);
var $this = $(this);
var $attach = settings.attach;
console.log($attach);
// DO STUFF
return false;
};
控制台记录“jQuery()”我认为上下文是文档。如何从插件中获取正确的上下文?理想情况下是“jQuery(h2)”。
在我四处乱窜之后,我已经摆弄了以下内容而没有结果:
var $attach = $.proxy( $attach, this );
有什么想法吗? http://jsfiddle.net/mfpYK/
答案 0 :(得分:0)
以下适用于我。
$(document).ready(function() {
$('article > header').stickyHeader({
attach: $('article > header').siblings('h2')
});
});
$(this)
显然是原始代码中的$(document)
。