2013-03-02 69 views
3

給出錯誤。我在</body>之前放置了代碼。仍然收到錯誤。未捕獲ReferenceError:myFunction未定義

<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,

<script type="text/javascript"> 
    var nexturl = ""; 
    var lastid = ""; 
    var param; 
    $(document).ready(function() { 
     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); 
      } 
     } 
     $("#more").click(function() { 
      $("#status").show(); 
      $("#more").hide(); 
      pageTracker._trackPageview('/?q=/more'); 
      var u = nexturl; 
      getResults(u); 
     }); 
    }); 
</script> 
+0

只要擺脫$(document).ready()'構造。當你的代碼在底部時不需要。 – 2013-03-02 06:06:55

+0

將事件處理程序與jQuery綁定,而不是使用'onclick'。 – Blender 2013-03-02 06:10:35

回答

7

onclick後,您不能把myFunction。當看到onclick時,myFunction沒有定義。

將JavaScript放入<head>標記中。另外,移動ready()以外的功能。

像這樣:直接

i.e 
    <script> 

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

「myFunction」在「onclick」屬性之前或之後無關緊要。它只是很重要的,它隱藏在'.ready()'處理程序的變量範圍內。 – 2013-03-02 06:04:43

+2

@thesystem謝謝,更新的答案... – ATOzTOA 2013-03-02 06:08:32

+0

@ATOzTOA:將代碼移到外部但仍然不起作用。 – 2013-03-02 06:14:53

3

保持myFunction的從jQuery docs

The handler passed to .ready() is guaranteed to be executed after the DOM is ready, so this is usually the best place to attach all other event handlers and run other jQuery code.

所以不前,您的onclick是創建了功能成立。因此它找不到該功能。您需要將其移出$(document).ready(function(){})以外。

+0

如果你有這個答案的解決方案,請將其標記爲答案:) – PSR 2013-03-02 06:04:09

+0

9分鐘前不能標記爲答案... – 2013-03-02 06:05:24

1

腳本標籤

<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> 
... 
+0

現在它的工作,但它只工作一次。 :( – 2013-03-02 09:05:07

+0

@FahadUddin第二次發生了什麼?你看到一個錯誤嗎? – 2013-03-02 09:29:30

+0

該函數再次運行,但不會執行它首先執行的任務 – 2013-03-02 09:31:43

相關問題