0

我想扩展 jQuery UI 的一个特定方面:https ://ajax.googleapis.com/ajax/libs/jqueryui/1.8.18/jquery-ui.js

在源代码中搜索easeInElastic以查看以下代码段:

easeInElastic: function (x, t, b, c, d) {
    var s=1.70158;var p=0;var a=c; alert('');
    if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*9.3;
    if (a < Math.abs(c)) { a=c; var s=p/4; }
    else var s = p/(2*Math.PI) * Math.asin (c/a);
    return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
},

我需要稍微修改代码,但我不想复制整个库。如何在单独的 .js 文件中包含修改后的代码段,以便覆盖原始代码段?

编辑:

在所有建议的方法中,这是唯一有效的方法:

$.extend($.easing,
{
    easeInElastic: function (x, t, b, c, d) {
           alert('');
        var s=1.70158;var p=0;var a=c;
        if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;
        if (a < Math.abs(c)) { a=c; var s=p/4; }
        else var s = p/(2*Math.PI) * Math.asin (c/a);
        return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
    }

});
4

3 回答 3

3

用您自己的方法覆盖该特定方法。

$.easing.easeInElastic = function(...

只要将带有该代码的附加 .js 文件放在 jqueryui.js 之后,它就会覆盖它。

于 2012-05-22T20:49:19.683 回答
1

jQuery 文档有一个关于插件/扩展的页面:

http://docs.jquery.com/Plugins/Authoring

基本上,这是扩展的问题$.fn

于 2012-05-22T20:49:07.800 回答
1
$.fn.easeInElastic = function(x,t,b,c,d){...}

或使用$.extend();

于 2012-05-22T20:51:40.443 回答