我正在寫一個插件,並試圖包裝每個方法內的函數,但它打破了插件。如果塊內容未包裹在「this.each」插件中。我明白,爲了傳遞多個選擇器,我需要「返回this.each」或不?我也想消除在插件內部使用選擇器的需要,例如「#the_lead」,而不是使用「this」。jQuery插件打破這個問題
(function($) {
$.fn.scroll_lead = function (options) {
var defaults = {
speedup: 500
};
var options = $.extend({}, defaults, options);
return this.each(function() {
var $window_height = $(window).height();
var $document_height = $(document).height();
var $hide_lead;
$(window).scroll(function() {
var $scrollTop = $(window).scrollTop();
if (!$hide_lead) {
if ($scrollTop > ($document_height/2)) {
$("#the_lead").slideDown(options.speedup);
} else {
$("#the_lead").slideUp(500, function() {
$(this).hide();
});
}
}
});
$('#hide_lead').click(function (e) {
$(this).parent().parents('div').hide();
hide_lead = true;
e.preventDefault();
});
});
};
})(jQuery);
,你能否告訴我們休息嗎?它如何打破插件?你是說當你不把它包裝在'this.each'中時它有效嗎?你有錯誤嗎? –
@ExplosionPills是的,如果我不包裝它this.each它的工作...沒有錯誤...我補充了其餘的... – Codex73
你能給我們一個例子使用jsfiddle.net上的插件嗎? –