jQuery插件在默认设置中覆盖url

jQuery plugin overriding the url in default settings

本文关键字:覆盖 url 设置 默认 插件 jQuery      更新时间:2023-09-26

嘿,我正在创建一个jquery插件,它的默认设置为

var settings = {
        renderTo:'body',
        width: 800,
        height:900,
        url:'miserables.json',
        zoom:true,
        loadingText:"loading...",
        margin:{
                    top: -5,
                    right: -5,
                    bottom: -5,
                    left: -5
                }
    };

因此,当我将此设置改写为时

$(function(){
$('#diagram').renderSvg({
    renderTo: '#diagram', // THIS IS WORKING
    height:500, // THIS IS WORKING
    width:200, // THIS IS WORKING
    url:'check.json' //THIS IS NOT WORKING INSTEAD OF I'M GETTING DEFAULT URL
});

});

那么如何覆盖url。请帮帮我。提前感谢

通常使用自定义设置扩展默认选项。为此,将settings初始化移动到renderData函数中,并从renderSvg调用它,如:

this.renderData(options);

因此代码将变为:

$.fn.renderData = function (options) {
    var options = $.extend({}, {
        renderTo: 'body',
        width: 800,
        height: 900,
        url: 'miserables.json',
        zoom: true,
        loadingText: "loading...",
        margin: {
            top: -5,
            right: -5,
            bottom: -5,
            left: -5
        }
    }, options);
    console.log(options.url);
    // ...
};

 $.fn.renderSvg = function (options) {
     this.renderData(options);
     // ...
 };