[英]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”錯誤。
我會接受的答案包括:“你不懂!” 和“你很傻。”
謝謝。
您剛剛定義的loadNext
函數位於匿名函數范圍的本地。 如果要全局訪問它,則全局定義它(在onready處理程序之外)。
您在第一行中使用的外部“ $(function()..””限制了您的范圍-loadNext函數僅在此塊內可用,並且在該塊外未定義。
解決此問題的簡單方法是僅在$(function()..)塊之外定義“ loadnext”函數,但這是錯誤的,原因有兩個:
為了解決這個問題,請使用jquery綁定事件來附加事件處理程序; 即
$(“#myfancybutton”,click(function(){loadNext(choice)});在您的$(function()..)內部
因為你在一個函數里面有一個函數
(function()
{
function loadNext(choice) {
this is bad
}
function loadNext(choice) {
this is good
}
onclick="loadNext()"
沒有問題
為什么不將loadNext函數放在$(function(){})之外呢?
因為loadNext
不在全局范圍內。 您可以在全局范圍內定義它,甚至更好的解決方案是使用.click()綁定您的click事件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.