我已經繼承了公司網站,並且隨着它一起匆匆拋出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