2

我想向 jQuery UI 对话框添加一个函数。我想这样做,而无需实际下载带有 jQ​​uery UI Dialog 源代码的 .js 文件并对其进行编辑。是否可以从单独的 .js 文件中执行此操作?

一些进一步的解释:假设我想添加名为“func1”的自定义函数。编码后,我应该可以这样称呼它:

($"#dialog").dialog("func1");

如果不编辑原始 jQuery Dialog 源代码,这可能吗?

4

2 回答 2

2

好的,我终于找到了答案: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); 

我已经从这篇文章中弄清楚了:

http://www.droptoframe.com/?p=35

于 2012-05-13T17:09:14.573 回答
0

我没有测试过,但我认为它应该可以工作:

$.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...
        }
    };
}());​
于 2012-05-12T19:25:51.650 回答