1 回答

TA貢獻1864條經驗 獲得超6個贊
分配搜索列表內部按鍵回調函數而不是外部。
$('.list div').click(function() {
const $list = $(this).closest('.list');
const $targetList = $('.list').not($list);
const $user = $(this);
// Remove user from one list and add it to another
$($user).prependTo($targetList);
// Animate user
$($user).css({
'border': '3px solid rgba(74, 144, 226, .5)'
});
return setTimeout((function() {
$($user).css({
'border': '3px solid #ffffff'
});
}), 1000);
});
const filterThroughUsers = (input, items) => $(input).on('keyup', function() {
const listItems = items == 'user' ? $('.all-users div') : $('.group-members div');
const value = this.value.toLowerCase().trim();
$(listItems).show().filter(function() {
return $(this).text().toLowerCase().trim().indexOf(value) === -1;
}).hide();
});
const $groupMembersSearch = $('input.search-group-members');
const $allUsersSearch = $('input.search-all-users');
// Filter through group members
filterThroughUsers($groupMembersSearch, 'member');
// Filter through all users
filterThroughUsers($allUsersSearch, 'user');
.container {
display: flex;
justify-content: space-between;
.left,
.right {
flex-basis: 45%;
border: 1px solid gray;
padding: 20px;
input {
width: 100%;
padding: 5px 16px;
margin-bottom: 30px;
}
div {
border: 3px solid #FFF;
}
}
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="container">
<div class="left">
<input type="search" placeholder='Search group members' class="search-group-members">
<div class="group-members list">
<div>Denis</div>
<div>John</div>
<div>Simon</div>
<div>Elton</div>
<div>Amelia</div>
</div>
</div>
<div class="right">
<input type="search" placeholder='Search all users' class="search-all-users">
<div class="all-users list">
<div>Samantha</div>
<div>Emily</div>
<div>Frank</div>
<div>Justin</div>
<div>Roberto</div>
<div>Rogelio</div>
<div>Amber</div>
</div>
</div>
</div>
添加回答
舉報