Tôi đang đào sâu vào Bootstrap của Twitter và bây giờ muốn thử và thêm một số chức năng vào các plugin, nhưng tôi không thể tìm ra cách để làm như vậy. Sử dụng plugin modal làm ví dụ (http://twitter.github.com/bootstrap/javascript.html#modals), tôi muốn thêm một hàm mới vào plugin có thể được gọi là một phương pháp plugin chuẩn. Gần nhất tôi nghĩ rằng tôi đã đến là với các mã sau đây, nhưng tất cả tôi nhận được khi tôi cố gắng truy cập là chức năng không phải là một phần của đối tượng.Làm thế nào để mở rộng Plugin Twitter Bootstrap
Mọi đề xuất? Đây là những gì tôi đã cố gắng mà có vẻ là gần nhất với những gì tôi cần phải làm:
$.extend($.fn.modal, {
showFooterMessage: function (message) {
alert("Hey");
}
});
Sau đó, tôi muốn gọi nó là như sau:
$(this).closest(".modal").modal("showFooterMessage");
EDIT: OK, tôi đã tìm ra cách thực hiện việc này:
(function ($) {
var extensionMethods = {
displayFooterMessage: function ($msg) {
var args = arguments[0]
var that = this;
// do stuff here
}
}
$.extend(true, $.fn.modal.Constructor.prototype, extensionMethods);
})(jQuery);
Vấn đề với bộ plugin Bootstrap hiện tại là nếu bất kỳ ai muốn mở rộng, không có phương pháp mới nào có thể chấp nhận đối số. Nỗ lực của tôi để "sửa" điều này là thêm sự chấp nhận các đối số trong lời gọi hàm plugin.
$.fn.modal = function (option) {
var args = arguments[1] || {};
return this.each(function() {
var $this = $(this)
, data = $this.data('modal')
, options = typeof option == 'object' && option
if (!data) $this.data('modal', (data = new Modal(this, options)))
if (typeof option == 'string') data[option](args)
else data.show()
}) // end each
} // end $.fn.modal
Nếu chỉnh sửa này có nghĩa là để được một câu trả lời, bạn sẽ có thể gửi nó như một câu trả lời tại . Xin hãy tiếp tục và làm như vậy :) – BoltClock
Dường như bịa đặt câu trả lời cho câu hỏi của tôi;) – AlexGad
Ồ, đừng lo lắng. Nó hoàn toàn bình thường - thậm chí [tôi đã thực hiện nó một lần] (http://stackoverflow.com/questions/5493149/how-do-i-make-a-wpf-window-movable-by-dragging-the-extended- glass-frame) :) – BoltClock