0

我正在尝试做一个简单的任务,在“onmouseover”下插入第二个函数名,但语法可能有问题。

echo '<div onmouseover="changeText(); <?php if($title==""){echo changeViz();}; ?> ">';

我可能需要转义一些引号并添加一些引号,但我无法找出正确的解决方案。谢谢

什么都没有。让我给你完整的代码......:

echo '<div class="frame" onmouseover="changeText(\''.$text[$i].'\'); <?php if($title[$i]==""){echo changeViz();}; ?>">';
4

3 回答 3

4

您嵌套<?php ?>在现有的 php 代码中,这是一个语法错误。相反,在 javascript 函数中连接changeViz()为带引号的字符串。

此版本使用三元运算符来复制if()您原来的语句。

echo '<div onmouseover="changeText(); ' . ($title == '' ? 'changeViz();' : '') .  '">';

这里的三元运算将连接changeViz();echo字符串 if $title == "",否则只是连接到一个空字符串。

看到完整代码后更新:

您在第一部分中正确转义了引号。

echo '<div class="frame" onmouseover="changeText(\'' . $text[$i] . '\'); ' . ($title == '' ? 'changeViz();' : '') .  '">';
于 2012-06-21T13:24:49.170 回答
1

如果您不尝试在一行中完成所有操作,则可以使您的代码更具可读性:

$onmouseover_action = "changeText(); ";
if($title==""){
    $onmouseover_action .= "changeViz(); ";
}
echo '<div onmouseover="'.$onmouseover_action.'">';

它使您的代码更易于维护,并且您无需对其进行注释,因为它可以更好地描述自己。

于 2012-06-21T13:29:20.287 回答
0

尝试这个:

echo '<div class="frame" onmouseover="changeText(\''.$text[$i].'\'); '. ($title[$i]=="")?'changeViz();':'').'">';
于 2012-08-16T10:08:08.613 回答