私はOOPHP開発者にすぎませんので、あらかじめ許してください。ただし、クライアント側のライブチャットを友人と統合しようとしています*。クリックリスナーforEach()クラスを作成するには
var chat = {
\t open: function(id) {
\t console.log(id);
}
};
var chatBtns = document.getElementsByClassName('chat-single');
// WORKS
chatBtns[0].addEventListener('click', function() {
\t chat.open(this.getAttribute('id'));
});
/* DOESNT WORK
chatBtns.forEach(function(btn){
btn.addEventListener('click', function() {
\t chat.open(this.getAttribute('id'));
});
});
*/
a {
text-decoration: none;
color: blue;
}
a:hover {
color: purple;
}
.chat-wrapper {
padding: 20px;
}
.chat-single {
background: #efefef;
padding: 5px;
border: 1px solid #000;
}
<div class='chat-wrapper'>
<p class='online-friends'>
Online Friends: (<span class='chat-online'>2</span>)
</p>
<div class='chat-friends'>
<a class='chat-single' title='chat with Some Name' href='#' id='unique-id-here'>Some Name</a>
<a class='chat-single' title='chat with Some Other Name' href='#' id='unique-id-here'>Some Other Name</a>
</div>
</div>
その友人のためのユニークなチャットアイデンティティ*属性id
の内部に保持されています。私はここでは、実際のデータのデモ版を作った
は私の現在のコードがあります。各ボタン(chat-single
)をクリックすると、id
属性が使用され、chat.open()
メソッドに送信されます。
このコードをデバッグして、chatBtns
がデータ型配列であることを確認しました。したがって、forEach()
documentationを見ました。ここでの問題点は、0
インデックスポイントを指定すると機能することです。 forEach()
を使用すると、メソッドが存在しないというエラーが表示されます。
ここの助けがあれば完璧ですし、それがどのように動作するかについての説明を得ることができますので、私が何が欠けているかを理解することができます。
私はこれを達成するためにライブラリを使用したくないことに注意してください(例:jQuery)。
をお試しください.forEach' –
これはうまくいきましたが、なぜわかりませんか?私は 'console.log(chatBtns);'それはすでに配列です..答えを追加できますか?大変感謝しています@ E.Sundin – KDOT