我从 Chrome 开发者工具中收到以下错误
Uncaught ReferenceError: searchRequests is not defined 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>");
}
?>
最佳答案
问题是函数 searchRequests
不在 $(document).ready()
之外的范围内。将其移至 $(document).ready()
之外。
一般来说,您不应该将 JavaScript 嵌入到 html 中。好多了:
$('#InstrumentID a').click(someFunctionThatIsInScope);
您可以将该代码放入 $(document).ready()
block 中。此外,您调用的函数将获取一个事件对象,您可以使用该对象从标记中获取可能需要的任何值。
关于php - Javascript 函数未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16050192/