Javascript 未捕获引用错误:未定义myFunction

Javascript 未捕获引用错误:未定义myFunction,javascript,Javascript,给出了一个错误。我已将代码放在前面。还是会出错 <form action="" method="get" id="searchform" > <input name="q" type="text" id="search" size="32" maxlength="128" class="txt"> <input type="button" id="hit" value="Search" onclick="myFunction();return false" clas

给出了一个错误。我已将代码放在
前面。还是会出错

<form action="" method="get" id="searchform" >
<input name="q" type="text" id="search" size="32" maxlength="128" class="txt">
<input type="button" id="hit" value="Search" onclick="myFunction();return false" class="btn">   
</form>

JS


var nexturl=“”;
var lastid=“”;
var参数;
$(文档).ready(函数(){
函数myFunction(){
param=$(“#搜索”).val();
警报(“我是一个警报框!”);
如果(参数!=“”){
$(“#状态”).show();
var u='1https://graph.facebook.com/search/?callback=&limit=100&q=“+param;
结果(u);
}
}
$(“#更多”)。单击(函数(){
$(“#状态”).show();
$(“#更多”).hide();
页面跟踪器。_trackPageview('/?q=/more');
var u=Nextur;
结果(u);
});
});

不能将
myFunction
放在
onclick
之后。当看到
onclick
时,
myFunction
没有定义

将JavaScript放在
标记中。另外,将函数移到
ready()
之外

像这样:

<script type="text/javascript">
var nexturl ="";
var lastid ="";
var param;

function myFunction() {
    param = $('#search').val();
    alert("I am an alert box!");
    if (param != "") {
        $("#status").show();
        var u = 'https://graph.facebook.com/search/?callback=&limit=100&q='+param;
        getResults(u);
        }
}

$(document).ready(function() {

  $("#more").click(function () { 

    $("#status").show();
    $("#more").hide();  
    pageTracker._trackPageview('/?q=/more');
    var u = nexturl;
    getResults(u);
  });

});
</script>
</head>
<body>
...

var nexturl=“”;
var lastid=“”;
var参数;
函数myFunction(){
param=$(“#搜索”).val();
警报(“我是一个警报框!”);
如果(参数!=“”){
$(“#状态”).show();
var u='1https://graph.facebook.com/search/?callback=&limit=100&q=“+param;
结果(u);
}
}
$(文档).ready(函数(){
$(“#更多”)。单击(函数(){
$(“#状态”).show();
$(“#更多”).hide();
页面跟踪器。_trackPageview('/?q=/more');
var u=Nextur;
结果(u);
});
});
...

直接在脚本标记中保留myFunction

 i.e
   <script>

function myFunction() {
  .....  
}
 </script>
即
函数myFunction(){
.....  
}
来自:

传递给.ready()的处理程序保证在DOM就绪后执行,因此这通常是附加所有其他事件处理程序并运行其他jQuery代码的最佳位置


因此,直到建立onclick之后才创建函数。因此,它无法找到函数。您需要将它移到
$(文档)之外。ready(function(){})
您必须将函数移到
$文档之外。ready
在这里,您将有两个选项:第一个将它移到
或第二个将它移到关闭
$文档之前。ready
括号。对函数
myFunction(){alert(“在我的函数内部”);}使用这种类型的声明

如果您得到了带有以下答案的解决方案,请将其标记为答案:)无论
myFunction
是在
onclick
属性之前还是之后。重要的是它隐藏在
.ready()
处理程序的变量范围内。@ATOzTOA:将代码移到外部,但它似乎仍然不工作。将函数移到ready块之外,并将完整代码移到头部,它就工作了。只需去掉
$(document).ready()
构造。如果代码位于底部,则不需要使用jQuery。使用jQuery绑定事件处理程序,而不是使用
onclick
@FahadUddin第二次会发生什么?是否看到错误?该函数再次运行,但不执行它执行的任务first@FahadUddin它为我工作;但是,返回的结果将附加到当前状态列表中。也许他们应该换掉它?谢谢。我刚刚注意到了这一点。如果您不希望以前的结果持续存在,只需将
$('#data').empty()
添加到
success
函数的顶部即可。如果你觉得我的答案有帮助,请随意将其标记为你的答案。
 i.e
   <script>

function myFunction() {
  .....  
}
 </script>