将选项传递给插件时的上下文

时间:2012-11-19 05:38:14

标签: jquery jquery-plugins plugins

我在将一个对象作为选项传递给插件的上下文时遇到了一些问题。我调用该函数,但是当插件执行时,“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/

1 个答案:

答案 0 :(得分:0)

以下适用于我。

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

$(this)显然是原始代码中的$(document)