[英]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_Model和https://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.