我从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>");
}
?>
答案 0 :(得分:2)
问题是函数searchRequests
不在$(document).ready()
范围之外。将其移到$(document).ready()
之外。
一般情况下,你不应该在html中嵌入你的javascript。好多了:
$('#InstrumentID a').click(someFunctionThatIsInScope);
您可以将该代码放在$(document).ready()
块中。此外,您调用的函数将获得一个事件对象,您可以使用该对象从标记中获取可能需要的任何值。
答案 1 :(得分:0)
因为它是私人的。您将它隐藏在全局范围内,因为它位于ready函数内。不要使用内联事件处理程序,使用on()来附加事件!