我有我的聊天室代碼以下部分:爲什麼在列表組項目上點擊('點擊')後,這會保留先前點擊的ID?
HTML
<div class="list-group">
<a class="list-group-item" id="1" href="#">Group A</a>
<a class="list-group-item" id="2" href="#">Group B</a>
<a class="list-group-item" id="3" href="#">Group C</a>
<a class="list-group-item" id="4" href="#">Group D</a>
</div>
<div class="message_box">
<form action="#" class="form">
<div class="form-group"></div>
<div class="input-group">
<textarea class="form-control message_text emojiable-message"
name="message_text" id="message_text" rows="3"></textarea>
<span class="input-group-addon btn btn-primary send_message_btn" name="send_message_btn"
>
Send
</span>
</div>
</form>
</div>
jQuery的
$(document).ready(function() {
$('#groups a.list-group-item').on('click', function() {
$(this).toggleClass("active");
$(this).siblings().removeClass("active");
//chage the textarea and btn id to single user.
$('.send_message_btn').removeAttr('id');
$('.send_message_btn').attr('id', 'send_to_topic');
var selected_group_id = this.id;
//Handle enter key press and mouse click (group)
$('#send_to_topic').click(function(e) {
alert(selected_group_id);
//sendChatMessage(selected_group_id);
return false;
});
$('#message_text').keydown(function(e) {
if (e.keyCode == 13) {
alert(selected_group_id);
//sendChatMessage(selected_group_id);
return false;
}
});
$(this).removeClass('active');
$(this).removeAttr('id');
});
});
問題是,當我選擇幾個列表組項,然後點擊發送按鈕,alert(selected_group_id);
將打印我選擇的所有項目的ID。我只想挑選最後選擇的項目在sendChatMessage(selected_group_id);
中使用。如果有人能指出哪裏出了問題,那很好。謝謝。
編輯。 主要問題是當我點擊發送消息獲得重複發送(發送之前我選擇的所有list-group-item ID的數量)。如果我只選擇一個組併發送消息不重複(這沒關係)。
要連接'$( '#send_to_topic')。點擊('和'$( '#MESSAGE_TEXT')。keydown'事件處理多次當有人點擊'和$('#groups a.list-group-item')'。請移動上面'click'處理器的外部。 – vijayP
@vijayP感謝您的回覆。即使移動textarea keydown和按鈕點擊處理程序(''click',function(){' – Ammly