gpt4 book ai didi

javascript - 全局设置 Kendo UI 窗口值

转载 作者:行者123 更新时间:2023-12-02 20:24:39 27 4
gpt4 key购买 nike

我正在使用很多 Kendo UI 窗口。有没有某种方法可以在全局范围内以某种方式指定默认值?或者也许是一个更现实的版本,我可以创建一些具有预定义值的父级,然后覆盖我需要更改的值吗?

例如,我希望所有窗口都有相同的错误行为和模态参数,所以我想做类似的事情:

$("#parentWindow").kendoWindow({
modal: true,
error: function () {
this.close();
new Notification().error();
}
});

然后使用父窗口作为新窗口的基础:

$("#newWindow").kendoWindow({
title: "This window should have the options (modal and error) of the parentWindow",
}).??getTheRestOfTheValuesFromParent()??;

或者重写一些参数:

$("#newWindow2").kendoWindow({
modal: false,
title: "A window with overwritten modal parameter",
}).??getTheRestOfTheValuesFromParent()??;

是否有可能以某种方式实现这一目标,是否有可能实现类似 C# 继承的功能?也许这是一个愚蠢的问题,但我对 JS 不太熟悉。

最佳答案

我强烈鼓励您为所有(或至少是那些更复杂的)剑道小部件创建自己的包装器代码。我的团队多年来一直在一个项目中这样做,我们使用剑道来做所有事情,并且我们取得了非常积极的成果。主要目的就是您所需要的:全局行为。如果在您的项目上编码了数千个窗口后,您需要全部更改它们,只需更改包装器即可。这只是一个简单的 jQuery 函数:

$.fn.MyWindow = function(options) {
var $target = $(this);
var widget = {
_defaultOptions: {
actions: ["Minimize", "Maximize", "Close"],
visible: false,
width: 400,
height: 400,
modal: true
},
_options: options || {},
_target: $target,
_widget: null,

_init: function() {
this._manageOptions();
this._createWidget();

return this;
},

_manageOptions: function() {
// Here you can perform some validations like displaying an error when a parameter is missing or whatever
this._options = $.extend(this._options, this._defaultOptions);
},

_createWidget: function() {
this._widget = this._target.kendoWindow(this._options).data("kendoWindow");

// Create here some behaviours that the widget doesn't haves, like closing the window when user click the black overlay
if (this._options.closeOnOverlayClick) {
$('body').off('click', '.k-overlay').on('click', '.k-overlay', function() {
this._widget.close();
}.bind(this));
}
},

Show: function(center) {
if (center) {
this._widget.center();
}

this._widget.open();
}
};

return widget._init();
};

var wnd = $("#wnd").MyWindow({
title: "My first window",
closeOnOverlayClick: true // Your own parameter
});

// Now you work with your own functions:
wnd.Show(true);

Demo .

有很多自定义项,例如您自己的事件 - 其中一些剑道的小部件没有 - 等等。

关于javascript - 全局设置 Kendo UI 窗口值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46607701/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com