[英]How to redefine object method in JS?
我想重載插件的方法。
這是我使用的插件。 http://www.owlgraphic.com/owlcarousel/owl-carousel/owl.carousel.js
該庫包含以下方法:
updateControls : function () {
var base = this;
base.updatePagination();
base.checkNavigation();
if (base.owlControls) {
if (base.options.items >= base.itemsAmount) {
base.owlControls.hide();
} else {
base.owlControls.show();
}
}
},
這是我的方法重載腳本:
jQuery(document).ready(function($){
$.fn.owlCarousel = $.extend($.fn.owlCarousel, {
updateControls:function()
{
console.log("!!");
var base = this;
base.updatePagination();
base.checkNavigation();
if (base.owlControls) {
base.owlControls.show();
base.owlControls.show();
}
}
});
})
console.log("!!");
似乎沒有被叫-我在做什么錯?
在這種情況下,似乎owlCarousel
的初始化owlCarousel
不接受覆蓋updateControls
內部函數的選項。 您可能需要修改庫以接受(並使用)對updateControls
函數的替代。
這種編輯的一個示例是修改庫中的init
函數,盡管我建議使用options
對象來覆蓋該函數。
var Carousel = {
init : function (options, el) {
var base = this;
base.$elem = $(el);
base.options = $.extend({}, $.fn.owlCarousel.options, base.$elem.data(), options);
base.userOptions = options;
// check for override in options of updateControls function
if (typeof base.userOptions.updateControls == "function") base.updateControls = base.userOptions.updateControls;
base.loadContent();
}
就像在第二個代碼示例中所做的那樣,此修改后的init
函數將允許您指定updateControls
函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.