簡體   English   中英

jQuery插件覆蓋選項

[英]jQuery plugin overwrite option

不幸的是,我遇到了jQuery插件的問題。 我做了一個小插件,以方便構建引導模態。

插件的選項如下所示:

defaults = {
    modalName: "",
    size: "md",
    title: "",
    body: "",
    buttons: {
        confirm: {
            class: 'btn btn-primary',
            value: 'Save'
        },
        cancel: {
            class: 'btn btn-default',
            value: 'Cancel'
        }
    }
};

但我希望某些頁面的確認按鈕的值不同。 我以為我可以這樣做:

$( 'body' ).CreateModel ( {
    // Different settings
    buttons: {
        confirm: {
            value: 'Save & exit'
        }
    }
});

但不幸的是,這完全清除了默認對象,它只留下了buttons.confirm.value 有什么辦法可以解決這個問題嗎?

提前致謝!

你沒有向我們展示你如何使用defaults和在參數中傳遞的對象的實現,但你可以使用$.extend來解決這個問題。

像這樣的東西:

$.fn.CreateModel = function(options) {
  options = $.extend({}, defaults, options);
  ....
};

使用jQuery函數.extend ,您可以傳遞true作為允許深度合並的第一個參數。

你必須更改this.options = $.extend( {}, defaults, options) ; 至 :

this.options = $.extend(true, {}, defaults, options) ;

在這里查看示例: http//jsfiddle.net/n5BKk/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM