【问题标题】:JavaScript onClick function constructed in PHP does not work in the ajax response back在 PHP 中构造的 JavaScript onClick 函数在 ajax 响应中不起作用
【发布时间】:2014-07-05 05:11:36
【问题描述】:

我正在发送一个 ajax 请求来加载一些在 PHP 中构建的 div 信息。那里有一个 onClick 功能。 Ajax 响应良好,但 JavaScript 函数在 HTML 客户端中不起作用。

这是用 PHP 编写的 ajax 的响应:

    $iscId = $row['instructorSemesterCourseId'];
    $year = $row['year'];
    $startDate = $row['startDate'];
    $endDate = $row['endDate'];
    $courseCredit = $row['courseCredit'];
    $pinned = $row['pinned'];
    $semesterName = $row['semesterName'];

    $date1 = date('F j, Y', strtotime($startDate)); 
    $date2 = date('F j, Y', strtotime($endDate));

    $div .= "<div id='SCid".$iscId."' class='schoolClass'>
                  <div class='schoolClassLeft'>
                    <div class='schoolCourseTitle'  onClick='classSessionEnter('SCid".$iscId."'); style='width:100%'>".$semesterName." ".$year." | ".$date1." &ndash; ".$date2."</div>
                  </div>
                </div>";
    echo('$div');

用JavaScript和jQuery编写的函数是:

function classSessionEnter(elm) {
    alert('elm');
    $('#' + elm).css({"background": "#E7F9CE"});
    $('#' + elm).css({"position": "absolute"});
    $('#' + elm).css({"top": "0px"});
    $('#' + elm).css({"color": "#006600"});
}

警报不起作用 - 它根本没有进入函数。为什么?

【问题讨论】:

  • 您应该使用一些单引号使其起作用。试试:onClick='classSessionEnter(\'SCid".$iscId."\');'
  • 是的,它在全局空间中。似乎错误来自函数的变量。当我从函数中删除变量时,它将进入函数。
  • 感谢迈克尔的编辑。 :)

标签: javascript php jquery ajax


【解决方案1】:

替换这个

$div .= "<div id='SCid".$iscId."' class='schoolClass'>
              <div class='schoolClassLeft'>
                <div class='schoolCourseTitle'  onClick='classSessionEnter('SCid".$iscId."'); style='width:100%'>".$semesterName." ".$year." | ".$date1." &ndash; ".$date2."</div>
              </div>
            </div>";
echo('$div');

有了这个

$div .= "<div id='SCid".$iscId."' class='schoolClass'>
                  <div class='schoolClassLeft'>
                    <div class='schoolCourseTitle'  onClick='classSessionEnter(SCid".$iscId.");' style='width:100%'>".$semesterName." ".$year." | ".$date1." &ndash; ".$date2."</div>
                  </div>
                </div>";
    echo($div);

【讨论】:

    【解决方案2】:
    $div .= "<div id='SCid".$iscId."' class='schoolClass'>
        <div class='schoolClassLeft'>
            <div class='schoolCourseTitle' onClick=\"classSessionEnter('SCid".$iscId."')\"; style='width:100%'>".$semesterName." ".$year." | ".$date1." &ndash; ".$date2."</div>
         </div>
    </div>";
    

    你应该先去掉引号「onClick=\"」

    【讨论】:

    • 非常感谢。现在效果很好。几个小时都在为此苦苦挣扎。
    猜你喜欢
    • 2021-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    • 2010-10-20
    • 1970-01-01
    相关资源
    最近更新 更多