如何扩展这个jQuery函数

时间:2011-03-19 17:07:23

标签: jquery

我想扩展这个函数并自己创建,这个新函数应该具有与旧函数相同的功能,但是应该用我自己的函数覆盖additionalOkClicked。

我该怎么做?

   (function ($) {
    $.LocationDialog = {
        mainInit: function()
        {
            //some code here
        },

        init: function(callingNum)
        {
            //some code here
        },

        additionalOkClicked: function()
        {
            //i want to override this function
        }
    };
})(jQuery);

3 个答案:

答案 0 :(得分:1)

你不能这样做:

$.LocationDialog.myAdditionalOnClick = function()
{
    this.additionalOnClick(); //call the other method in the object.
}

如果我们谈论绑定到事件的函数,那么使用:

$('#foo').unbind('click',$.LocationDialog.additionalOnClick);
$('#foo').bind('click',$.LocationDialog.myAdditionalOnClick);

答案 1 :(得分:0)

使用原型:

$.locationDialog.prototype.functionName = function() {
    // Your code here
}

$.locationDialog.additionalOkClicked.prototype.functionName = function() {
    // Code here
}

或者只是在$ .locationDialog:

中创建另一个函数
   (function ($) {
    $.LocationDialog = {
        mainInit: function()
        {
            //some code here
        },

        init: function(callingNum)
        {
            //some code here
        },

        additionalOkClicked: function()
        {
            //some code here
        }

        functionName: function() {
            // Your code here
        }
    };
})(jQuery);

答案 2 :(得分:0)

您只需添加代码即可删除该功能,然后使用相同名称创建自己的代码:

(function ($) {
  delete $.LocationDialog.additionalOkClicked;

  $.LocationDialog.additionalOkClicked = function () {
    // your code here
  };
})(jQuery);

$.LocationDialog对象的其余部分将保持不变。