Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Chrome中的jQuery Dropkick:下拉列表不自动关闭_Jquery_Forms_Select - Fatal编程技术网

Chrome中的jQuery Dropkick:下拉列表不自动关闭

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

图为1000字:

基本上在大多数其他浏览器中,当对dropkick菜单的关注丢失时,它会关闭。或者,当选择其他dropkick菜单时,上一个/其他打开菜单将自动关闭

然而,在Chrome中,这并没有发生。您可以全部打开它们,要关闭它们,您必须选择某个内容或再次单击它

有什么想法吗


谢谢大家!

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;
});