如何正确逃离此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);