重载$()函数

时间:2012-04-01 11:27:45

标签: jquery

我可以重载$()函数吗?
我想实现这样的模式$('$ name'),其中字符串以'$'开头,然后我返回我定义的结果。例如:

function getElementByVarName(varName) {
    //return something of my own
}

var original$=$;
$=function(param) {
    if (typeof param === 'string' && param.startsWith('$')) {
        return getElementByVarName(param.substring(1));
    } else {
        original$(param);
    }
}

这样做的最佳方式是什么?

2 个答案:

答案 0 :(得分:0)

您可以使用noConflict()

var j = $.noConflict();
(function($) { 
  $(function() {
    //here your new function codes

 });
 })(jQuery);

原始$现在是j函数此处 DEMO

答案 1 :(得分:0)

你勾勒出来的确应该工作得很好!

编辑:通过执行以下操作,您将希望适应传递给原始函数的各种参数:

 original$.apply(original$, arguments)