这看起来是一个微不足道的问题,但我不知道如何处理它。我有一个从javascript生成的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"
产生空白文档。
如果在另一个quote:内,则需要转义quote:
-
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>'
您的问题是在使用'
字符来分隔函数和调用中的参数。
将'
中的一组替换为"
,或者在参数
'
。$('#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>');
尝试生成以下字符串
'<DIV id=' +
A.pid +
' onmouseover="google.maps.event.trigger(marker, 'mouseover');"> <H3>' +
A.name + '</H3></DIV>'
你需要在html属性的值周围加上"。否则,浏览器认为该属性在(marker,
部分之后的下一个空格处结束。
$('#results')
.append('<DIV id="'
+ A.pid + '"'
+ ' onmouseover="function(){google.maps.event.trigger(marker, 'mouseover');};"><H3>'
+ A.name
+ '</H3></DIV>');
几件事
- 不要把所有的HTML都大写。现在是21世纪,不是20世纪。
-
onmouseover
事件不需要匿名函数 - 将属性值用单引号或双引号括起来(我在下面使用双引号)。
- 阅读JavaScript字符串和引号。
试试这个
$('#results').append('<div id="' +
A.pid +
'" onmouseover="google.maps.event.trigger(marker, 'mouseover');"><h3>' +
A.name +
'</h3></div>');