1

我在将对象的上下文作为选项传递给插件时遇到了一些问题。我调用该函数,但是当插件执行此操作时,“附加”的上下文会发生变化。

$(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/

4

1 回答 1

0

以下对我有用。

$(document).ready(function() {  
    $('article > header').stickyHeader({
        attach: $('article > header').siblings('h2')
    });
});

$(this)显然$(document)在您的原始代码中。

于 2012-11-19T06:50:44.760 回答