我正在尝试执行一项简单的任务,在“onmouseover”下插入第二个函数名称,但语法可能有问题。
echo '<div onmouseover="changeText(); <?php if($title==""){echo changeViz();}; ?> ">';
我可能需要逃避一些引用并添加一些,但我无法弄清楚正确的解决方案。 感谢
没有什么工作。让我给你完整的代码......:
echo '<div class="frame" onmouseover="changeText(\''.$text[$i].'\'); <?php if($title[$i]==""){echo changeViz();}; ?>">';
答案 0 :(得分:4)
您在现有的PHP代码中嵌套<?php ?>
,这是一个语法错误。而是在javascript函数changeViz()
中作为带引号的字符串连接。
此版本使用ternary operator复制您最初的if()
语句。
echo '<div onmouseover="changeText(); ' . ($title == '' ? 'changeViz();' : '') . '">';
这里的三元操作会将changeViz();
连接到echo
字符串if $title == ""
,或者只是连接空字符串。
你在第一部分中引用了正确的引用。
echo '<div class="frame" onmouseover="changeText(\'' . $text[$i] . '\'); ' . ($title == '' ? 'changeViz();' : '') . '">';
答案 1 :(得分:1)
如果您不尝试在一行中执行所有操作,则可以使代码更具可读性:
$onmouseover_action = "changeText(); ";
if($title==""){
$onmouseover_action .= "changeViz(); ";
}
echo '<div onmouseover="'.$onmouseover_action.'">';
它使您的代码更易于维护,并且您不需要对其进行评论,因为它更好地描述了自己。
答案 2 :(得分:0)
试试这个:
echo '<div class="frame" onmouseover="changeText(\''.$text[$i].'\'); '. ($title[$i]=="")?'changeViz();':'').'">';