我想向 jQuery UI 对话框添加一个函数。我想这样做,而无需实际下载带有 jQuery UI Dialog 源代码的 .js 文件并对其进行编辑。是否可以从单独的 .js 文件中执行此操作?
一些进一步的解释:假设我想添加名为“func1”的自定义函数。编码后,我应该可以这样称呼它:
($"#dialog").dialog("func1");
如果不编辑原始 jQuery Dialog 源代码,这可能吗?
我想向 jQuery UI 对话框添加一个函数。我想这样做,而无需实际下载带有 jQuery UI Dialog 源代码的 .js 文件并对其进行编辑。是否可以从单独的 .js 文件中执行此操作?
一些进一步的解释:假设我想添加名为“func1”的自定义函数。编码后,我应该可以这样称呼它:
($"#dialog").dialog("func1");
如果不编辑原始 jQuery Dialog 源代码,这可能吗?
好的,我终于找到了答案:D
(function($){
var _init = $.ui.dialog.prototype._init;
//Init
$.ui.dialog.prototype._init = function() {
var self = this;
_init.apply(this, arguments);
//here you can do custom init
};
//Custom Dialog Functions
$.extend($.ui.dialog.prototype, {
func1: function() {
alert("f1");
},
func2: function() {
alert("function 2");
}
});
})(jQuery);
我已经从这篇文章中弄清楚了:
我没有测试过,但我认为它应该可以工作:
$.fn.dialog = (function() {
var cached_function = $.fn.dialog;
return function() {
if (arguments[0] !== "func1")
cached_function.apply(this, arguments);
else {
// Do what you want here...
}
};
}());