簡體   English   中英

如何在js,jquery,html中創建適當的click事件

[英]How to create a proper click event in js, jquery, html

因此,作為一項任務,我需要創建一個准系統的Twitter克隆。 我得到了一個腳本,該腳本可以從四個用戶創建隨機推文,並且要顯示它們,我只是在使用一個間隔。 我的問題是,其中一種條件要求,如果用戶單擊用戶名之一,則網站應顯示用戶的推文歷史記錄。 這些推文都存儲在生成器文件中。 實際上,我已經嘗試了一天多的時間來運行動態點擊腳本。 每當我在網站上附加一條推文時,都會使用一類用戶名。 就邏輯而言,我得到的最接近的結果是將onclick = functionName(userclass)放在我的用戶名的錨點內。 但這超出了范圍。 我是html / jquery的新手。 實際上,這是我的第一個星期,所以我已經閱讀了幾個小時,並且大家都知道當您開始學習這些東西時情況如何。 您閱讀的內容越多,所提出的問題就越多。 希望有人可以發光

這是代碼:

<!DOCTYPE html> <html>   <head>

    <title>TWIDDLER</title>
    <link rel="stylesheet" href="style.css">
    <script src="jquery.js"></script>
    <script src="data_generator.js"></script>
    <script src="history.js"></script>   </head>

  <body>
    <img class="bird" src="icon.png">
    <h1>
      <span class='title' id="top">TWIDDLER (def not Twitter)</span>
    </h1>

    <script>
      $(document).ready(function(){
        var $body = $('.tweets');
        var index = 0;
        setInterval(function(){
          var tweet = streams.home[index];
          var $tweet = $('<div></div>');
          var hypername = tweet.user; 
          var $username = $("<a onclick='gethistory("+hypername+")' href='#top' class='"+hypername+"'><span></span></a>");
          var $endline = $('<br>');
          console.log($username);
          var time = tweet.created_at.toLocaleTimeString();
          $tweet.text(tweet.message + ' | ' + tweet.created_at.toLocaleTimeString());
          $username.text('@' + tweet.user + ': ');
          $username.appendTo($body)
          $tweet.appendTo($body);
          // console.log($tweet);
          // var testname = $('<h6></h6>').text('***'+hypername+'***').appendTo($body);
          $endline.appendTo($body);
          index += 1;
        }, 2000);
         var gethistory = function(name) {
           console.log("I clicked it");
          for (var i = 0; i < streams.users[name].length; i++) {
            var tweethist = streams.users[name][i];
            var $tweethist = $('<div></div>');
            var $endline = $('<br>');
            $tweethist.text(tweet.message + ' | ' + tweet.created_at.toLocaleTimeString());
            $tweethist.appendTo('#history');
            $endline.appendTo('#history');
          }
        };
      });
    </script>

    <h3>
    <section class="row">

        <div class="column1 tweets left"><h2>Tweeds</h2></div>

        <div class="column2 right" id="history"></div>

    </section>
    </h3>

    <!-- <section>
      <audio controls autoplay src="song.mp3"></audio>
    </section> -->

  </body>

</html>

@Imsuchacoder

您的代碼對HTML DOM和Javascript變量范圍了解甚少。 開發人員可能會發現您的問題“需要解釋很多”。

(1)。 您必須對HTML結構有一個很好的了解。 了解有關DOM的信息: https : //en.wikipedia.org/wiki/Document_Object_Modelhttps://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model/Introduction

如果您編寫不正確,瀏覽器將無法正常運行。

(2)。 您的代碼無法正常工作,因為在嘗試從全局范圍訪問gethistory它位於本地范圍內。 嘗試在全局范圍內定義函數gethistory

在此處了解有關變量范圍的更多信息: https : //www.w3schools.com/js/js_scope.asp以及此處JavaScript中變量的范圍是什么?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM