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 に答える