函数未定义-jQuery/Javascript
Function not defined - jQuery/Javascript
又是一个倒霉蛋。。。好吧,所以我到处寻找,试图找出如何制作这个jQuery/JavaScript函数,我希望这只是我语法上的一个错误,但这是我的代码:
<script type="text/javascript">
$(function()
{
function loadNext(choice) {
$("#thequestion").load("question.php", { ans: choice, id: "<?php echo $row['id']; ?>", nextId: "<?php echo $nextQuestionId; ?>" } );
$("#graph").load("graph.php", { id:"<?php echo $row['id']; ?>", nextId: "<?php echo $nextQuestionId; ?>" } );
alert("loadNext activated");
}
});
</script>
然后,我使用onclick
事件调用loadNext(choice)
函数,如下所示:onclick="loadNext(YorN);"
。
在此之后,我得到一个"loadNext未定义"错误。
我会接受的答案包括:"你不学习!"answers"你很傻。"
这里有一个类似的问题。
谢谢。
您刚才定义的loadNext
函数是匿名函数作用域的本地函数。如果您想全局访问它,那么就全局定义它(在onready处理程序之外)。
第一行的外部"$(function().."限制了您的范围-loadNext函数仅在此块内可用,在块外将不定义。
解决这个问题的简单方法是在$(function()..之外定义"loadnext"函数阻止,但这是错误的,原因有两个:
- 这使得函数在整个应用程序中具有全局性,并且污染全局命名空间是不允许的
- 像"onclick"这样的内联javascript通常是不好的——这模糊了表示和逻辑之间的界限,并使调试变得困难
为了解决这个问题,可以使用jquery绑定事件来附加事件处理程序;即
$("#myfancybutton",单击(function(){loadNext(choice)});在$(function()..)中集团
因为函数中有一个函数
(function()
{
function loadNext(choice) {
this is bad
}
function loadNext(choice) {
this is good
}
onclick="loadNext()"
无问题
为什么不把loadNext函数放在$(function(){})之外?
因为loadNext
不在全局范围内。您可以在全局范围内定义它,或者更好的解决方案是使用.click()绑定您的点击事件。
相关文章:
- 动态地改变“”的URL;添加新项目”;链接使用javascript/jquery
- Javascript(jQuery)给了我奇怪的结果
- 为什么不是't窗口.恢复正常工作吗?(javascript/jquery)
- Javascript/jQuery中的并行Ajax调用
- 我可以在Javascript/jQuery中使用一个变量作为键吗
- Javascript/Jquery/PHP加载页面-如何
- Javascript/Jquery Blob not showing Chrome PDF
- 如何使用javascript/jquery获取iframe的URL的锚点属性
- OnClick/Onhover Javascript/jquery
- 如何从javascript/jquery中的复选框中获取布尔值
- javascript/jquery将utc转换为短格式的本地时间
- 在不设置协议的情况下,使用javascript/jquery更改iframe-src
- 如何向这个javascript/jquery函数添加参数
- 用JavaScript/jQuery点击图片,选中多个方框
- 使用Javascript/JQuery获取JSON GET数据
- 从数组中删除元素的最佳方法是:javascript/jquery
- Javascript/jQuery压缩一个图像正确的评论帖子,并使用Ajax Laravel 5.2保存到控制器中
- 用DRY方式Javascript/JQuery动态替换HTML
- 类似Javascript JQuery的库
- 如何在 Javascript/jQuery 中获取一些随机下拉列表的选定值