【发布时间】:2015-06-10 07:23:26
【问题描述】:
我正在尝试编写一个 JQuery 插件来支持元素 ID 中的 $,我的代码是:
DollarSignPlugin.js:
function escapeJQueryElementName(elementName) {
elementName = elementName.replace(/\\\$/g, "$");
return elementName.replace(/\$/g, "\\$");
}
var jQueryInit = $.fn.init;
$.fn.init = function(arg1, arg2, rootjQuery){
arg2 = arg2 || window.document;
if (arg1 && arg1.replace) {
var newArg1 = escapeJQueryElementName(arg1);
return new jQueryInit(newArg1, arg2, rootjQuery);
}
return new jQueryInit(arg1, arg2, rootjQuery);
};
效果很好,但我在当前行遇到了一个问题:
var $anyselector = $("#");
JQuery 抛出错误“语法错误,无法识别的表达式:#”。
当单击任何带有 href="#" 的选项卡时,此行来自引导程序。
删除我的插件时不会出现此错误,如果我将替换功能直接复制粘贴到 jquery 文件中,它也可以正常工作。
那么有没有更好的方法来覆盖选择器或者我的代码有问题,请帮忙?
【问题讨论】:
标签: javascript jquery html jquery-plugins