1
我做了一个自定义选择框,当单击一个按钮时可以正常打开。但是,当单击一个按钮时,在同一页面上有多个选择框,所有的选择框都打开。有没有办法做到这一点,而不是每个选择框应用单独的类和多个功能?jQuery多个点击实例
这是我的HTML。
<div class="select-box-wrap">
<select class="select-box" name="mbpanel_layout_section_options[site_layout]">
<option value="1" <?php if(1 == $options['site_layout']) echo 'selected'; ?>>Left Sidebar</option>
<option value="2" <?php if(2 == $options['site_layout']) echo 'selected'; ?>>Right Sidebar</option>
<option value="3" <?php if(3 == $options['site_layout']) echo 'selected'; ?>>Three Column</option>
<option value="4" <?php if(4 == $options['site_layout']) echo 'selected'; ?>>Full Width</option>
</select>
<input type="button" class="select-click"/>
</div>
<div class="select-box-wrap">
<select class="select-box" name="mbpanel_layout_section_options[post_layout]">
<option value="1" <?php if(1 == $options['post_layout']) echo 'selected'; ?>>Left Thumbnail</option>
<option value="2" <?php if(2 == $options['post_layout']) echo 'selected'; ?>>Right Thumbnail</option>
<option value="3" <?php if(3 == $options['post_layout']) echo 'selected'; ?>>Top Thumbnail</option>
</select>
<input type="button" class="select-click"/>
</div>
这里是jQuery。
(function($){
$(".select-click").click(function() {
var size = $('.select-box option').size();
if (size != $(".select-box").prop('size')) {
$(".select-box").prop('size', size);
$(".select-box").addClass("select-open");
} else {
$(".select-box").prop('size', 1);
$(".select-box").removeClass("select-open");
}
})
})(jQuery);
,这里是一个JSFiddle
DOM遍历将您的代码与您的html布局配对 - *如果*这是一个问题(在大多数情况下不是),那么您可以使用数据属性“配对”.select-click和.select-box。并找到他们的方式。如果这不是问题,这是一个很好的答案。 –
谢谢。那正是我需要的。如果可能的话,也许你可以进一步帮助。如果点击某个选项,如果页面上的任何其他位置像正常的选择框一样点击,是否有关闭该框的方法? – Mark
你只需要听取'select-box-wrap'元素外部的点击,https://jsfiddle.net/descrs2p/4/ –