我需要扩展一个 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/