1
플러그인에 대한 옵션으로 전달되는 개체의 컨텍스트에 문제가 있습니다. 나는 함수를 호출하지만 플러그인이 그 일을 할 때 '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/
예, 당신은 매력처럼 작동합니다. ** 그러나 ** 첨부 옵션은 실제로 헤더 객체에 다른 객체를 '부착'하므로, 예제에서는 마지막 h2 만 연결됩니다. 그래서 $ (this)를 포함하는 것이 중요합니다. – plankguy
내 코드는 피들에서 실행할 때 두 개의'h2' dom 객체 배열을 제공합니다. 정확히 console.log ($ attach);를 출력 하시겠습니까? – Salman
당신은 정말 옳았습니다, 그것은 고마워했습니다! – plankguy