0

我从 chrome 开发人员工具中收到以下错误

未捕获的 ReferenceError:未定义 searchRequests searchProcess.php:174 onclick。

当我单击从 生成的超链接时engine.php,我没有从该searchRequests函数中收到警报。我不确定问题是什么,我很感激任何建议。这是我的代码:

searchProcess.php

<?php
include '../include/engine.php';
?>

<html>
<head>
<script type="text/javascript" src="../jQuery.js"></script>
<script type="text/javascript">
$( document ).ready(function() {

    var instrID;
    var cat;

    $(window).load(function(){

    });

    var newheight = $(window).height();


    function searchRequests(instr)
    {

        alert("in searchResults");
        instrID = instr;
        alert(instrID);

    }

    });

</script>
</head>
<body>
<?php
    drawSearchResults($var1, $var2, $var3, $var3, $var4); 
?>
</body>
</html>

engine.php

<?php
function drawSearchResults($var1, $var2, $var3, $var4, $var5)
{
while($row = mysql_fetch_assoc($result))
{
    echo ("<tr>");
        echo ("<td id='InstrumentID'><a href='javascript:void(0);' onclick='searchRequests($row[InstrumentID])'>$row[InstrumentID]</a></td>");
    echo ("</tr>");
}
?>
4

2 回答 2

2

问题是该函数searchRequests不在$(document).ready(). 把它移到外面$(document).ready()

一般来说,您不应该在 html 中嵌入您的 javascript。好多了:

$('#InstrumentID a').click(someFunctionThatIsInScope);

您可以将该代码放入$(document).ready()块中。此外,您调用的函数将获得一个事件对象,您可以使用该对象从标记中获取您可能需要的任何值。

于 2013-04-17T02:15:44.473 回答
0

因为它是私人的。您将其隐藏在全局范围内,因为它位于 ready 函数内。不要使用内联事件处理程序,使用 on() 附加事件!

于 2013-04-17T02:14:44.203 回答