我已经继承了公司网站,并且随着它一起匆匆抛出CMS。今天得到了我的第一个bug,我很难过。jQuery和/或markItUp!在CTRL键上ch咽
CMS使用markItUp!,这是我以前从未听说过的。问题是这样的:每当有人在受影响的textarea中输入CTRL字符,jQuery就抛出一个可爱的Syntax error, unrecognized expression: [ctrl character]
异常。
我在看markItUp! keyPressed功能,我不知道有没有的工作情况。要使用快捷键,你必须用CTRL前言他们,但你按CTRL 后会的keyPressed永远火,找不到CTRL在集,Sizzle.filter
因此错误。
按CTRL 与 textarea的焦点,那么:
//jquery.markitup.js
function keyPressed(e) {
shiftKey = e.shiftKey;
altKey = e.altKey;
ctrlKey = (!(e.altKey && e.ctrlKey)) ? e.ctrlKey : false;
if (e.type === 'keydown') {
if (ctrlKey === true) {
//Line below attempts to find an anchor tag with accesskey CTRL character
li = $("a[accesskey="+String.fromCharCode(e.keyCode)+"]", header).parent('li');
//SNIP
}
}
}
//jquery-1.5.js
Sizzle.filter = function(expr, set, inplace, not) {
var count = 0;
var match, anyFound,
old = expr,
result = [],
curLoop = set,
isXMLFilter = set && set[0] && Sizzle.isXML(set[0]);
//expr = the CTRL character, set = the markItUp! default set
while (expr && set.length) {
for (var type in Expr.filter) {
if ((match = Expr.leftMatch[ type ].exec(expr)) != null && match[2]) {
//SNIP
}
}
// Improper expression
if (expr === old) {
if (anyFound == null) {
Sizzle.error(expr);
} else {
break;
}
}
old = expr;
}
return curLoop;
};
Sizzle.error = function(msg) {
throw "Syntax error, unrecognized expression: " + msg;
};
缺少什么我在这里?
这听起来像你的选择表达有语法错误 - 尝试检查,这个选择是创建字符串:'$(“一[快速=” +字符串.fromCharCode(e.keyCode)+“]”,header)' – Tejs
我同意这一观察。但是,如果是这样的话,为什么它对其他人都有效?我没有写这行 - 它是markItUp代码库的一部分。 –
浏览器的区别?是否在不同的浏览器版本上报告错误,而不是您正在测试的错误?你能重现错误吗? – Tejs