我有一个php生成的HTML,我想添加一些css onmouseover功能,如下所示
<span id='".$id."' class='userInfo' onmouseover='hoverdiv(event,'popupUserInfoDiv')' onmouseout='hoverdiv(event,'popupUserInfoDiv')'>".$c["test"]."</span>
javascript甚至还没有被添加,如果我将鼠标移到我的DOM的开头,我会得到以下错误:
SyntaxError: Unexpected token '}'
编辑:抱歉,如果我说得不够清楚,但我的代码是PHP生成的,所以我不能使用任何双引号?我试过了,它打破了我的页面
发布于 2018-01-04 16:22:48
因为已经对PHP字符串使用了双引号,对HTML属性使用了单引号,所以不能对JavaScript使用单引号。
hoverdiv(event,'popupUserInfoDiv')
将PHP字符串转换为字符串块,这样就可以释放双引号,参见下面的字符串块示例。
<?php
$str = <<<EOF
<p>Hello</p>
<p><?php echo _("World"); ?></p>
EOF;
?>
发布于 2018-01-04 16:06:56
您需要使用单引号和双引号,如下所示:
<span id='".$id."' class='userInfo' onmouseover="hoverdiv(event,'popupUserInfoDiv')" onmouseout="hoverdiv(event,'popupUserInfoDiv')">".$c["test"]."</span>
否则解析器就会变得混乱。
在本例中,我对HTML属性使用了doubles,对JS属性使用了singles。它起作用了。
发布于 2018-01-04 16:06:56
您正在提前结束呼叫。
onmouseover='hoverdiv(event,'popupUserInfoDiv')'
应该是
onmouseover='hoverdiv(event,"popupUserInfoDiv")'
同上
onmouseout='hoverdiv(event,'popupUserInfoDiv')'
和
".$c["test"]."
https://stackoverflow.com/questions/48099072
复制