我只是在摆弄timesheet.js的源代码(见具体行),遇到了一个小错误,见下面的代码行:
'<span style="margin-left: ' + bubble.getStartOffset() + 'px; width: '
+ bubble.getWidth() + 'px; " class="bubble bubble-' + (cur.type || 'default' ) + '"></span>',
当我生成HTML并将其分成两行时,一切都工作正常,但如果我做以下操作,即将HTML分成3行,如下所示:
'<span style="margin-left: ' + bubble.getStartOffset() + 'px; width: '
+ bubble.getWidth() + 'px; "
class="bubble bubble-' + (cur.type || 'default' ) + '"></span>',
我得到以下错误:
Uncaught SyntaxError: Unexpected token ILLEGAL
为什么?为什么它是当我吐代码成多行错误发生?有人能解释一下吗?这是我唯一的问题。
谢谢。
Alex-z .
好吧,你在字符串字面量的中间分割了代码。你不能在任何你想要的地方分开——语言是有规则的。这就好像你把它在getStartOffset
的中间分开,在一行上得到getS
,在另一行上得到tartOffset
——这完全是错误的。
最初的分割是在一个表达式中-注意第二行是如何以+
开头的,并且不是字符串字面值中的。
正确的分割应该是这样的:
'<span style="margin-left: ' + bubble.getStartOffset() + 'px; width: '
+ bubble.getWidth() + 'px; " class="bubble bubble-'
+ (cur.type || 'default' ) + '"></span>',
如果您需要在字符串字面值的中间进行分割,则需要将其结束并附加另一个:
'<span style="margin-left: ' + bubble.getStartOffset() + 'px; width: '
+ bubble.getWidth() + 'px; " '
+ 'class="bubble bubble-' + (cur.type || 'default' ) + '"></span>',
默认情况下,javascript引擎不允许在字符串文本中使用回车符。所以,如果你像在第二个例子中那样添加回车,引擎会到达行尾,但找不到字符串char的结尾。
你可以很容易地像这样修改你的例子:
'<span style="margin-left: ' + bubble.getStartOffset() + 'px; width: '
+ bubble.getWidth() + 'px; " '
+ 'class="bubble bubble-' + (cur.type || 'default' ) + '"></span>',