Chrome中的jQuery Dropkick:下拉列表不自动关闭
图为1000字: 基本上在大多数其他浏览器中,当对dropkick菜单的关注丢失时,它会关闭。或者,当选择其他dropkick菜单时,上一个/其他打开菜单将自动关闭 然而,在Chrome中,这并没有发生。您可以全部打开它们,要关闭它们,您必须选择某个内容或再次单击它 有什么想法吗Chrome中的jQuery Dropkick:下拉列表不自动关闭,jquery,forms,select,Jquery,Forms,Select,图为1000字: 基本上在大多数其他浏览器中,当对dropkick菜单的关注丢失时,它会关闭。或者,当选择其他dropkick菜单时,上一个/其他打开菜单将自动关闭 然而,在Chrome中,这并没有发生。您可以全部打开它们,要关闭它们,您必须选择某个内容或再次单击它 有什么想法吗 谢谢大家! I,代码发生变化时: // Focus events $dk.bind('focus.dropkick', function (e) { $dk.addClass('dk_f
谢谢大家! I,代码发生变化时:
// Focus events
$dk.bind('focus.dropkick', function (e) {
$dk.addClass('dk_focus');
}).bind('blur.dropkick', function (e) {
$dk.removeClass('dk_open dk_focus');
});
付诸表决:
它会很好地工作。我也遇到了同样的问题,我的一个朋友发现,如果您将“tabindex”属性添加到“select”标记dropkick中,它将正常工作 这行不通:
<select name="test">
<option val="1">a</option>
</select>
A.
这将有助于:
<select name="test" tabindex="1">
<option val="1">a</option>
</select>
A.
在web和移动设备的webkit浏览器中,出现了许多与Dropkick相关的问题
这是完整的代码,在dropkick中找到以下代码
//焦点事件
$dk.bind('focus.dropkick',函数(e){
$dk.addClass(“dk_焦点”);
}).bind('blur.dropkick',函数(e){
$dk.removeClass('dk_open dk_focus');
});代码>
并将其替换为以下内容:
// Focus events
if($.browser.webkit) {
$('html').click(function() {
$dk.removeClass('dk_open dk_focus');
});
$dk.click(function(event){
$dk.addClass('dk_focus');
});
$('.dk_toggle').click(function(){
var elements__ = $(this).parent('div');
if(elements__.hasClass('dk_open')){
_closeDropdown($dk);
return false;
}
});
}
else{
// Focus events
$dk.live('focus', function() {
$dk.addClass('dk_focus');
}).live('blur', function() {
$dk.removeClass('dk_open dk_focus');
});
}
快乐编码 我发现了一个更简单的修复方法,这是
您只需向.dk_toggle的“live”“click”事件添加一行代码(在大多数版本中,该事件从第363行开始):
最后一种方法是:
// Handle click events on the dropdown toggler
$('.dk_toggle').live('click', function (e) {
$('.dk_open').removeClass('dk_open');
var $dk = $(this).parents('.dk_container').first();
_openDropdown($dk);
if ("ontouchstart" in window) {
$dk.addClass('dk_touch');
$dk.find('.dk_options_inner').addClass('scrollable vertical');
}
e.preventDefault();
return false;
});
有人知道如何解决多重宽度问题吗?这对我来说也很有效,比修改插件更好-谢谢+1.在这里工作也很好。同样,这是一种更好的修复方法,而不是修改插件。干杯我在
方法上使用了,而不是实时
。第3行也使用了不同的选择器-在我的例子中,$('html,body')
起作用,而$('html')
不起作用。
$('.dk_open').removeClass('dk_open');
// Handle click events on the dropdown toggler
$('.dk_toggle').live('click', function (e) {
$('.dk_open').removeClass('dk_open');
var $dk = $(this).parents('.dk_container').first();
_openDropdown($dk);
if ("ontouchstart" in window) {
$dk.addClass('dk_touch');
$dk.find('.dk_options_inner').addClass('scrollable vertical');
}
e.preventDefault();
return false;
});