Tôi có một plugin jQuery hiện có, bây giờ tôi muốn mở rộng nó. Hãy xem xét plugin được đề cập dưới đây:Ghi đè chức năng trong plugin jQuery
$.fn.x = function(option) {
var def = {
a: 1,
b: 2
};
option = $.extend(def, option);
function abc() {
//do something
}
function def() {
//do something
}
};
Bây giờ ở trên là plugin tôi nhận được từ đâu đó. Tôi cần phải có hành vi tùy chỉnh cho phương pháp abc, nói
function abc() {
//do something else
}
Tôi không muốn thay đổi các plugin hiện tại, bạn có thể cho tôi biết làm thế nào tôi có thể đạt được như vậy bằng cách mở rộng tương tự hoặc bằng cách cắm tùy chỉnh của riêng tôi ?
EDIT: Tôi cố gắng này quá với phương pháp đề cập dưới đây:
(function($) {
$.fn.x = function(option) {
var defaults = {
a: 1,
b: 2
};
option = $.extend(def, option);
function abc() {
//do something
console.log('Base method called');
}
function def() {
//do something
abc();
}
def();
};
})(jQuery);
(function() {
var x = $.fn.x;
$.fn.x.abc = function() {
console.log('Overidden method called');
//_x.abc();
};
})();
$('<div/>').x();
Nhưng tôi vẫn nhận "phương pháp cơ bản được gọi là" như giao diện điều khiển đầu ra.
Dưới đây là một bài viết tốt đẹp để giúp bạn bắt đầu - http://www.bennadel.com/blog/1624-Ask- Ben-Overriding-Core-jQuery-Methods.htm – HyderA
Cảm ơn, tôi đã đi mặc dù liên kết nhưng nó không trỏ đến những gì tôi đã đề cập trong câu hỏi của tôi. –