jQuery防止下拉菜单中的默认功能

wel*_*ght 2 html javascript css jquery drop-down-menu

我在下拉菜单中创建了一个智能搜索组件.应允许用户在下拉列表中进行搜索,具体取决于在菜单中提供的input = text中输入的值.

但是当我点击输入时,菜单会关闭.我也试过使用preventDefault,但它仍然没有用.

HTML:

<input type="text" readonly="readonly" value="">
<button class="btn i dropdown-toggle" data-toggle="dropdown"> <i class="caret-down"></i>
</button>
<div class="dropdown-menu smart">
    <input type="text" placeholder="Search">
    <ul class="search-options">
        <li><a href="#">Something</span></a>
        </li>
    </ul>
</div>
Run Code Online (Sandbox Code Playgroud)

JS:

// jQuery to prevent default close 
$('body').on('click', '.dropdown-menu.smart input', function (event) {
    event.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)

小智 5

编写以下代码,它应该保持下拉列表打开

$('.dropdown-menu').click(function(e) {
        e.stopPropagation();
});
Run Code Online (Sandbox Code Playgroud)