2017-05-05 154 views
0

我剛剛開始web開發,並有一個函數loadTweets從另一個文件中拉出並顯示,當我擺脫按鈕,並直接運行它作爲一個匿名函數,它的工作原理,但是,由於某些原因,按鈕無法調用該函數。jquery與按鈕onclick函數

任何幫助將不勝感激,謝謝!

<html> 
    <head> 
    <script src="jquery.js"></script> 
    <script src="data_generator.js"></script> 

    </head> 
    <button type = "button" onclick="loadTweets"> Load </button> 
    <body> 
    <script> 
     $(document).ready(function(){ 
     var loadTweets = function(){ 
      var $body = $('body'); 
      $body.html(''); 
      var index = streams.home.length - 1; 
      while(index >= 0){ 
      var tweet = streams.home[index]; 
      var $tweet = $('<div></div>'); 
      $tweet.text('@' + tweet.user + ': ' + tweet.message); 
      $tweet.appendTo($body); 
      index -= 1; 
      } 
     } 
     }); 
    // }); 



    </script> 
    </body> 
</html> 
+0

調用你的函數類似這樣的<按鈕類型=「按鈕」的onclick =「loadTweets()」>加載 –

回答

2

您需要定義文檔準備處理以外的功能和使用()與功能

<button type = "button" onclick="loadTweets()"> Load </button> 

<script> 
    var loadTweets = function(){ 
     // 
    }); 
</script> 

不過我建議你用不顯眼的事件處理程序。

HTML,一個ID屬性添加到按鈕

<button type="button" id="loadTweets"> Load </button> 

腳本,然後使用ID selector靶向元件和.on()到事件處理程序結合。

$(document).ready(function() { 
    var loadTweets = function() { 
     //existing code 
    } 

    $('#loadTweets').on('click', loadTweets) 
}); 
+0

所以從我的理解文檔就緒處理程序在頁面加載後運行,那麼爲什麼在第一個示例中您是否在其外部定義了loadTweets? – user3628240

+0

@ user3628240,'loadTweets'需要在全局範圍內,那麼只有它可以通過'onclick'訪問,你可以測試你自己 – Satpal

0

可以以另一種方式使用

<html> 
    <head> 
    <script src="jquery.js"></script> 
    <script src="data_generator.js"></script> 

    </head> 
    <body> 
    <button type = "button" onclick="loadTweets()"> Load </button> 
    <script> 
     function loadTweets(){ 
      var $body = $('body'); 
      $body.html(''); 
      var index = streams.home.length - 1; 
      while(index >= 0){ 
      var tweet = streams.home[index]; 
      var $tweet = $('<div></div>'); 
      $tweet.text('@' + tweet.user + ': ' + tweet.message); 
      $tweet.appendTo($body); 
      index -= 1; 
      } 
     } 
    </script> 
    </body> 
</html>