如何在列表之后解决这个“缺失”的论点?

时间:2011-10-02 07:09:23

标签: javascript

这看起来像一个微不足道的问题,但我不知道如何处理它。我有一个{j}生成的DIV标记,如下所示:

$('#results')
 .append('<DIV id='
 + A.pid
 + ' onmouseover=function(){google.maps.event.trigger(marker, 'mouseover');};><H3>'
 + A.name
 + '</H3></DIV>');

Firebug在列表之后给出了一个“缺失”参数错误,因为它在)之后不能立即识别'mouseover'。我该如何解决这个问题?

更新

我理解这是关于转义引用,只是在\'mouseover\'鼠标悬停时执行DIV会产生语法错误,并且"mouseover"会生成一个空白文档。

语法错误如下: function(){google.maps.event.trigger(marker,

5 个答案:

答案 0 :(得分:5)

如果它在另一个引用中,你需要逃避引用

  • var x = "I don't like you!";
  • var y = 'I don\'t like you!';
  • var z = 'echo "this text?";';

要在你的情况下实现它,它将是这样的:

'<DIV id='
 + A.pid
 + ' onmouseover=function(){google.maps.event.trigger(marker, \'mouseover\');};><H3>'
 + A.name
 + '</H3></DIV>'

答案 1 :(得分:1)

您的问题是使用'字符来分隔您的电话中的函数和参数。

'切换一组"或围绕参数值使用\'

$('#results')
 .append('<DIV id='
 + A.pid
 + ' onmouseover=function(){google.maps.event.trigger(marker, "mouseover");};><H3>'
 + A.name
 + '</H3></DIV>');

//OR

$('#results')
 .append('<DIV id='
 + A.pid
 + ' onmouseover=function(){google.maps.event.trigger(marker, \'mouseover\');};><H3>'
 + A.name
 + '</H3></DIV>');

答案 2 :(得分:0)

你需要“围绕你的html属性的值。否则浏览器会认为属性在下一个空白处结束,而且恰好在(marker,部分之后。

$('#results')
 .append('<DIV id="'
 + A.pid + '"'
 + ' onmouseover="function(){google.maps.event.trigger(marker, \'mouseover\');};"><H3>'
 + A.name
 + '</H3></DIV>');

答案 3 :(得分:0)

尝试生成以下字符串

'<DIV id=' + 
A.pid  + 
' onmouseover=\"google.maps.event.trigger(marker, \'mouseover\');\"> <H3>' + 
A.name + '</H3></DIV>'

答案 4 :(得分:0)

有几件事

  1. 停止将HTML放入所有大写字母中。这是21世纪而不是20世纪。
  2. 您不需要onmouseover事件的匿名函数。
  3. 用单引号或双引号括起属性值(我在下面使用double)。
  4. 阅读JavaScript字符串和引号。这是tutorial
  5. 试试这个

        $('#results').append('<div id="' +
        A.pid +
        '" onmouseover="google.maps.event.trigger(marker, \'mouseover\');"><h3>' +
        A.name +
        '</h3></div>');