鼠标悬停时的FullCalendar事件会导致jQuery错误

时间:2013-01-11 14:36:18

标签: javascript jquery firebug fullcalendar

在周视图下,在事件mouseOver上,我在firebug中收到此错误消息:

  

Error: Syntax error, unrecognized expression: ,
throw new Error( "Syntax error, unrecognized expression: " + msg );
jquery-1.8.3.js (line 4680)

有没有人遇到过这样的问题,或者有没有办法调试错误的起源?

提前致谢
此致

3 个答案:

答案 0 :(得分:2)

它看起来像一个选择器错误:

$("abc, def, "); // or
$("<div,");

不确定。

如果您查看jQuery 1.8.3的源代码,您将在第4680行找到这些行:

/*LINE: 4679*/ Sizzle.error = function( msg ) {
/*LINE: 4680*/     throw new Error( "Syntax error, unrecognized expression: " + msg );
/*LINE: 4681*/ };

很难从此处调试您的代码,但您可以尝试将arguments.callee.caller放在throw new Error之前:

Sizzle.error = function( msg ) {
    console.log( arguments.callee.caller );
    throw new Error( "Syntax error, unrecognized expression: " + msg );
};

这将告诉你调用此函数的函数是什么。从那里你可以尝试使用相同的方法前进。最后你会发现你的问题。


什么是arguments.callee.caller

arguments是一个类似于数组的数组,包含解析为函数的所有参数:

function a() {}
a(1, 2, 3); // Inside a arguments will be: [1, 2, 3]

arguments有一个名为callee的属性,此属性包含对名为eg的函数的引用。它自我:

function a() {} // arguments.callee === a.

arguments.callee具有非标准(但标准,仅在ECMA中未描述)属性caller此属性包含对在运行时调用它的函数的引用。

function a() {
    b()
}
function b() {}; // arguments.callee.caller === a;

a();

还有一些文档:

你知道console - 对象吗?

答案 1 :(得分:0)

这个问题通过离开jQuery-Mobile并回到jQuery-UI来解决。 在jQuery-Mobile下,FullCalendar无法正常工作。

答案 2 :(得分:0)

问题是由jQuery-Mobile引起的。在jQuery-Mobile环境中,FullCalendar无法正常运行。回到jQuery-UI后,一切都恢复正常。

感谢您的帮助