我试图让一个select
框在用户悬停在它上面时自动弹出,就好像他们点击了它一样。这可能吗?
我想我可以用 jQuery 轻松做到这一点......
$("#settings-select").mouseover(
function(){
$(this).trigger("click");
}
);
但这无济于事。有任何想法吗?
我试图让一个select
框在用户悬停在它上面时自动弹出,就好像他们点击了它一样。这可能吗?
我想我可以用 jQuery 轻松做到这一点......
$("#settings-select").mouseover(
function(){
$(this).trigger("click");
}
);
但这无济于事。有任何想法吗?
我终于让这个工作了!你需要被选中;正如其他人所指出的那样,您不能使用正常的方式执行此操作,select
因为没有可用的事件。但这会在鼠标悬停时弹出菜单并在鼠标悬停时select
关闭菜单,这正是我想要的效果。
HTML:
<select id="dropdown" data-placeholder="Choose…">
<option value="one">Option 1</option>
<option value="two">Option 2</option>
<option value="three">Option 3</option>
</select>
JS:
$("#dropdown").chosen().next(".chzn-container").hover(
function(){
$("#dropdown").trigger("liszt:open");
},
function(){
$(this).trigger("click");
}
);
$("#dropdown").trigger("liszt:open");
是打开菜单的内容。liszt:close
当您想关闭它时(据我所知),没有可以触发的等效事件,但是触发click
它具有相同的效果。
已经有一段时间了,但有一个我在这里看不到的解决方案,hover
用于更改 的长度select
:
$('select').hover(function() {
$(this).attr('size', $('option').length);
}, function() {
$(this).attr('size', 1);
});
http://codepen.io/anon/pen/avdavQ
这是一支笔,它不仅仅是必需品,而且有一些风格:
trigger只调用通过 jQuery 的绑定函数之一绑定的函数。
没有跨浏览器的方式可以从 javascript 打开选择(可能可以this.click()
在某些版本的 IE 上调用,但我无法测试,而且我确信在其他浏览器上没有办法)。
这是不可能的。您只能实现自己的选择框或选择插件,但这不利于可用性。也想想trigger('focus')
。
不幸的是,选择的方法对我不起作用。
但我认为我可以在 jQuery 上制作自己的选择器。
HTML:
<div class='select'>
<p class='input'>Select option</p>
<input type='hidden' name='some_name_to_form' />
<div class='hidden'>
<p value='id_1' >option long value</p>
<p value='id_2' >option 2</p>
<p value='id_3' >option 3</p>
</div>
</div>
JS:
$('.hidden p').click(function(){
$(this).closest('.select').find('.input').text($(this).text());
$(this).closest('.select').find('input').val($(this).attr('value'));
$(this).closest('.select').trigger("change");
});
$('.select').change(function(){
// ... do stuff
});
工作示例
$(function(){
$(".chosen-select").chosen();
$(".chosen-container-single").hover(function(){
$(this).addClass("chosen-with-drop");
$(this).addClass("chosen-container-active");
$('.chosen-select').trigger("chosen:open");
},function(){
$(this).removeClass("chosen-with-drop");
$(this).removeClass("chosen-container-active");
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/chosen/1.4.2/chosen.jquery.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/chosen/1.4.2/chosen.min.css">
<div>
<select data-placeholder="Choose a Country..." class="chosen-select" style="width:350px;" tabindex="4">
<option value=""></option>
<option value="Any">[Any]</option>
<option value="United States">United States</option>
<option value="United Kingdom">United Kingdom</option>
<option value="Afghanistan">Afghanistan</option>
<option value="Aland Islands">Aland Islands</option>
<option value="Albania">Albania</option>
<option value="Algeria">Algeria</option>
<option value="American Samoa">American Samoa</option>
</select>
</div>