【发布时间】:2015-10-29 18:41:19
【问题描述】:
我需要扩展一个 jQuery 插件 (https://github.com/idiot/unslider) 以便使用另一个公共方法添加额外的行为。
(function(){
// Store a reference to the original remove method.
var originalMethod = $.fn.unslider;
// Define overriding method.
$.fn.unslider = function(){
// Execute the original method.
originalMethod.apply( this, arguments );
console.log( "Override method" );
function test() {
console.log("test called");
}
this.each(function() {
// Operations for each DOM element
console.log("each dom element?");
}).data('unslider', {
// Make test accessible from data instance
test: test
});
return this;
}
})(jQuery);
我已经设法让公共方法在调用时可以访问
var slider = $('#slider');
slider.data('unslider').test();
但是,无论如何,我想保留 unslider 的旧行为,但使用另一个功能扩展插件。有人有想法吗?
我创建了一个小提琴,所以你可以检查发生了什么: 我的新函数被调用,但旧函数不见了: http://jsfiddle.net/b2os4s7e/1/
【问题讨论】:
标签: javascript jquery plugins extend unslider