我正在做一个小项目,其中包括一个带有jQuery的自定义选择框。
问题是,在第一次选择一个选项之后,不可能再选择另一个选项。
这是我的标记:
function bindSelectmenu() {
$('form').each(function() {
$(this).find('select').selectmenu({
appendTo: $(this).find('select').parent()
});
});
}
<link href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/smoothness/jquery-ui.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
<form action="">
<fieldset class="contact-flex">
<label for="input" class="flex-grow-33">
Selectbox
</label>
<div class="input flex-grow-66">
<select name="input" id="input">
<option value="a">a</option>
<option value="b">b</option>
<option value="c">c</option>
</select>
</div>
<span></span>
</fieldset>
</form>
我使用的是jQuery 3.6.0和jQuery UI。
发布于 2022-01-06 02:27:51
我发现了问题,这是一个e.stopPropagation在一个点击事件的身体。当我把它移除的时候。
发布于 2021-12-21 09:10:41
请考虑以下几点。
$(function() {
$('form').each(function(i, el) {
$('select', el).selectmenu({
appendTo: $('select', el).parent()
});
});
});
<link href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/smoothness/jquery-ui.css" rel="stylesheet" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
<form action="">
<fieldset class="contact-flex">
<label for="input" class="flex-grow-33">
Selectbox
</label>
<div class="input flex-grow-66">
<select name="input" id="input">
<option value="a">a</option>
<option value="b">b</option>
<option value="c">c</option>
</select>
</div>
<span></span>
</fieldset>
</form>
这几乎与您使用的代码相同,但是它是在加载时执行的,而不是在函数中执行的。如果您需要在一个函数中运行它,您可以这样做,但是最好更具体一些,以确保this
不会混淆。
https://stackoverflow.com/questions/70437078
复制相似问题