gpt4 book ai didi

jQuery UI 自动完成在 Bootstrap 下拉菜单上运行不佳

转载 作者:行者123 更新时间:2023-12-01 08:40:56 25 4
gpt4 key购买 nike

代码:

<body>
<div class="container">

<div class="dropdown">
<button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown">Dropdown Example
<span class="caret"></span></button>
<ul class="dropdown-menu">
<li><a href="#">dumped_li</a></li>
<div class="ui-widget">
<label for="tags">Tags: </label>
<input id="tags">
</div>
</ul>
</div>

</div>
</body>

<script>
$( function() {
var availableTags = [
"ActionScript",
"AppleScript",
"Asp",
"BASIC",
"C",
"C++",
"Clojure",
"COBOL",
"ColdFusion",
"Erlang",
"Fortran",
];
$( "#tags" ).autocomplete({
source: availableTags
});
} );
</script>

我编写了一些在 Bootstrap 下拉列表中具有 jQuery UI 自动完成功能的代码。

当我运行它时,搜索栏(在本例中为 input-#tags)很好地放置在下拉菜单中,但是 autocomplish() 结果显示在下拉菜单本身之外。

问题:如何将 autocomplish() 结果很好地放置到下拉菜单内部,如输入元素 (#tags)?

编辑:

我读了这篇 stackoverflow 帖子:https://stackoverflow.com/a/7944662/6736285我发现使用 Bootstrap 与不使用 Bootstrap 之间的区别。

看,如果我使用 Bootstrap :jsfiddle:http://jsfiddle.net/uMqyn/912/

代码:

<head>

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css">
<script src="https://code.jquery.com/jquery-3.2.1.min.js" integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4=" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js" integrity="sha256-VazP97ZCwtekAsvgPBSUwPFKdrwD3unUfSGVYrahUqU=" crossorigin="anonymous"></script>

</head>

<body>
<div class="dropdown bigdiv">
<button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown">Dropdown Example
<span class="caret"></span></button>
<ul class="dropdown-menu bigul">
<li><a href="#">dumped_li</a></li>
<li class="ui-widget">
<label for="tags">Tags: </label>
<input id="tags">
</li>
</ul>
</div>
<br/>
<br/>
<br/>

<br/>
<br/>
<div class="anotherdiv" style="background-color: #447e9b; height: 200px;">
GoesHere:
<br/>
<ul></ul>
</div>
</body>
<script>
var availableTags = [
"ActionScript",
"AppleScript",
"Asp",
"BASIC",
"C",
"C++",
"Clojure",
"COBOL",
"ColdFusion",
"Erlang",
"Fortran",
];
$('#tags').autocomplete({
search: function(event, ui) {
$('.anotherdiv ul').empty();
},
source: availableTags
}).data('autocomplete')._renderItem = function(ul, item) {

return $('<li></li>')
.data('item.autocomplete', item)
.append(item.value)
.appendTo($('.anotherdiv ul'));
};
</script>

正如您在 jsfiddle 中看到的,它的工作原理就好像结果不在 anotherdiv 中一样。

但是我删除了 bootstrap,效果很好。

您可以看到 bootstrap 删除的版本 jsfiddle : http://jsfiddle.net/uMqyn/913/

所以,

问题1:为什么bootstrap会造成这种情况?

问题2:即使我使用 Bootstrap ,如何才能使其良好地显示结果?

最佳答案

据我所知,您可能遇到了一些兼容性问题(我不确定,但如果我处于您的位置,我可能会放弃 jquery ui - 它尚未更新并且相当旧- 并且可能与 bootstrap css 不太兼容)。

来自https://jqueryui.com/
看来 jQuery UI v1.12.1 只兼容 jQuery 1.7+

jQuery UI v1.12.1
jQuery 1.7+

从您的示例 ( http://jsfiddle.net/uMqyn/912/ ) 中,您尝试将 jquery-ui 1.12.1jquery 3.2.1 结合使用。

使用 bootstrap + jquery 1.9.1 + jquery-ui 1.9.2

http://jsfiddle.net/sudarpochong/uMqyn/914/

无 Bootstrap (仅 jquery 1.9.1 + jquery-ui 1.9.2)

http://jsfiddle.net/sudarpochong/uMqyn/916/

注释

如果您注意到,上面的两个链接(带和不带 Bootstrap )都会产生与您在 fiddle http://jsfiddle.net/uMqyn/913/ 中期望的类似结果。

附注

  • 检查 jsfiddle --> external resources 了解如何包含 bootstrap js 和 css。
  • JSFiddle - Javascript 选项允许您选择 jquery 和 jquery ui

关于jQuery UI 自动完成在 Bootstrap 下拉菜单上运行不佳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47581713/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com