如何正确逃离此function?

我有一个从jQuery生成的DIV标记,如下所示:

 $('#results') .append('

' + A.name + '

');

Firebug在'mouseover'之后立即给出了一个错误“ 缺失参数列表 “因为它不能识别'mouseover'

在鼠标hoverDIV时执行\'mouseover\'会产生语法错误。 语法错误读取: function(){google.maps.event.trigger(marker,并查看生成的DIV显示:

 

执行"mouseover"会生成一个空白文档。

如何正确逃脱此function?

更新:

这应该工作:

 $('#results') .append('

' + A.name + '

');

我需要为函数添加转义双引号并转义参数的单引号。

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

 $('#results') .append('

' + A.name + '

');

您正在使用HTML在JS中将数据放入JS中。 每个级别的封装都需要字符串转义,否则带外字符将导致错误并可能导致安全漏洞。 人脑不善于跟踪多个嵌套级别的字符串封装。

因此,使用jQuery的元素创建快捷方式在新div上设置属性,并使用事件处理function向其添加侦听器,而不是弄乱丑陋和不安全的HTML字符串黑客攻击:

 var div= $('
', {id: A.pid}).append($('

', {text: A.name})); div.mouseover(function() { google.maps.event.trigger(marker, 'mouseover'); }); $('#results').append(div);