私は会社のウェブサイトを継承し、それに伴い急いでまとめた CMS を作成しました。今日初めてバグを見つけて困っています。
CMS は、今まで聞いたことのない markItUp! を使用しています。問題は次のとおりです。影響を受けるテキストエリアに誰かがCTRL文字を入力するたびに、jQuery は適切なSyntax error, unrecognized expression: [ctrl character]
例外をスローします。
私はmarkItUpを見ています!keyPressed 関数と、状況下でどのように機能するかわかりません。ショートカットを使用するには、それらの前に を付ける必要がありますCTRLが、 keyPressed は を押した後に常に起動し、セットにCTRL見つからないためCTRL、エラーになりますSizzle.filter
。
CTRLテキストエリアにフォーカスを合わせて押すと、次のようになります。
//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;
};
ここで何が欠けていますか?