为什么第一次单击不起作用,但在javascript中第二次单击起作用?

为什么第一次单击不起作用,但在javascript中第二次单击起作用?,javascript,html,jquery,event-handling,jquery-events,Javascript,Html,Jquery,Event Handling,Jquery Events,我有搜索建议的Jquery代码 HTML代码: <div class="search-section"> <div class="search-inner"> <input type="text" name="search" class=&qu

我有搜索建议的Jquery代码

HTML代码:

                     <div class="search-section">
                        <div class="search-inner">
                            <input type="text" name="search" class="search_input">
                            <input type="hidden" class="redirectUrl">
                            <button type="button" class="btn-redirect">Search</button>
                        </div>
                        <div class="dropdown-section">
                            <ul class="dropdown-list">
                            </ul>
                        </div>
                    </div>

搜寻
Jquery代码:

const allConstList = ['John','Micheal','Allen','Jarvis'];

$(document).on('keyup change','.search_input',function(e) {
        const inpVal = e.target.value;
        const $dropdownSection = $(e.target).parent().parent().find('.dropdown-section');
        $dropdownSection.empty();
        $dropdownSection.show();
        for(const constId in allConstList){
            const constName = allConstList[constId];
            if(constName.toLowerCase().includes(inpVal.toLowerCase()))
                $dropdownSection.append(`<li class="dropdown-list-item" data-title="${constName}">${constName}</li>`);
        }
    });
    $('body').click('.dropdown-list-item',function(e) {
            const title = e.target.getAttribute('data-title');
            $(e.target).parent().parent().find('.search_input').val(title);
            $(e.target).parent().parent().find('.dropdown-section').hide();
    });
const allConstList=['John','Micheal','Allen','Jarvis'];
$(文档).on('keyup change','s.search_input',函数(e){
常量inpVal=e.target.value;
常量$dropdownSection=$(e.target).parent().parent().find('.dropdownSection');
$dropdownSection.empty();
$dropdownSection.show();
for(所有常数列表中的常数构成){
const constName=allConstList[constId];
if(constName.toLowerCase().includes(inpVal.toLowerCase()))
$dropdownSection.append(`li class=“dropdown list item”data title=“${constName}”>${constName}`);
}
});
$('body')。单击('.下拉列表项',函数(e){
const title=e.target.getAttribute('data-title');
$(e.target).parent().parent().find('.search_input').val(title);
$(e.target).parent().parent().find('.dropdown section').hide();
});
在此情况下,我必须单击两次
。下拉列表项
,第一次单击时什么也没有发生


请帮助,提前感谢

请包括所有相关代码(HTML)。需要查看您的
。下拉列表项的外观和位置。因此,我相信问题在于您的(键控更改),因为当您单击某个项时,您的更改事件将触发并“参照”该项list@CarstenLøvboAndersen,我已经更新了Jquery代码片段,.下拉列表项实际上是一个列表项我发现实际问题是search_输入中的keyup事件,但没有keyup事件更改事件不会触发