Как выбрать div, на который нажал пользователь из jquery - PullRequest
0 голосов
/ 10 февраля 2020

Я использую jquery автозаполнение, и при выборе любого элемента я добавляю новый div с классом, установленным в active_chat, чтобы этот div стал активным. Перед добавлением нового div я удаляю active_chat из предыдущих div, поэтому активным остается только последний добавленный div.

Теперь я хочу дать пользователям возможность щелкнуть любой другой неактивный div и сделать его активным, т.е. установить его класс active_chat. Для этого я ищу код для выбора div, на который нажал пользователь, но я не знаю, как это сделать, поскольку мой код выдает все div, и я на самом деле не знаю, на какой из них пользователь нажал.

Ниже приводится мой основной div, который содержит все элементы

<div class="inbox_chat" id="inboxchat">                        
</div>

Ниже приводится jquery Я использую для добавления нового div динамически и установки его класса на active_chat

$("#users").autocomplete
({
    select: function (event, ui)
    {
        $('.chat_list').removeClass("active_chat");
        $('#inboxchat').prepend('<div class="chat_list active_chat"><div class= "chat_people"><div class="chat_img"> <img src="mypic.jpg" alt="sometitle"></div><div class="chat_ib"><h5>my name<span class="chat_date">Dec 25</span></h5><p>sometext</p></div></div></div>');
    }
});

Ниже приведен код, который я использую для выбора текущего элемента div, по которому щелкнул пользователь, но он выбирает все элементы div

$(document).on('click', '#inboxchat', function () {
    var clicked = $(this).siblings();
    console.log(clicked);
    alert("now1");
});

Когда пользователь нажимает любой элемент div, я просто хочу установить active_chat для этого элемента div и удалите этот класс из других div.

EDIT
Я устанавливаю active_chat для div, называемого chat_list

1 Ответ

1 голос
/ 10 февраля 2020

Попробуйте, если хотите, чтобы он работал на любом div на странице:

$('div').on('click', function(){
    $("div").removeClass("active_chat");
    $(this).addClass("active_chat");
});

Должно ли это работать только для div с классом "inbox_chat"? Если это так, попробуйте:

$('div. inbox_chat').on('click', function(){
    $("div").removeClass("active_chat");
    $(this).addClass("active_chat");
});
...