Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.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
Javascript 选择2模式在鼠标光标上打开,并立即在鼠标上选择项目_Javascript_Jquery_Html_Ruby On Rails_Select2 - Fatal编程技术网

Javascript 选择2模式在鼠标光标上打开,并立即在鼠标上选择项目

Javascript 选择2模式在鼠标光标上打开,并立即在鼠标上选择项目,javascript,jquery,html,ruby-on-rails,select2,Javascript,Jquery,Html,Ruby On Rails,Select2,我在RubyonRails项目中使用select2.full.min.js,以提供我的select标记搜索功能之一。我正在以最普通的方式初始化它:$('select.select2').select2() select2-ified标记似乎工作正常,除了一个问题-单击select时的“模式”在单击select后立即在我的鼠标光标下的select元素上打开。问题是,一个对象会立即被选中,并且在释放鼠标时,会提交到select标记 我见过很多例子,模态总是在select标签下面弹出,我正在尝试实现这

我在RubyonRails项目中使用
select2.full.min.js
,以提供我的
select
标记搜索功能之一。我正在以最普通的方式初始化它:
$('select.select2').select2()

select2-ified标记似乎工作正常,除了一个问题-单击select时的“模式”在单击select后立即在我的鼠标光标下的select元素上打开。问题是,一个对象会立即被选中,并且在释放鼠标时,会提交到select标记

我见过很多例子,模态总是在select标签下面弹出,我正在尝试实现这一功能,但我不确定我需要做什么才能实现这一点。我在Select2网站上遵循这些示例,但我不知道这里到底出了什么问题

有人能告诉我如何才能做到这一点吗?谢谢大家!

[编辑]经过调查,当视口超出某个垂直大小时,问题似乎发生了。如果我将浏览器窗口缩得足够小,select2模式会在元素上方弹出。在刷新页面之前,再次扩展视口大小不会导致问题重新出现

[EDIT2]这似乎与select2用于决定如何定位模态的计算有关。它的放置方式如下:

position: absolute;
top: 350px;
left: 472px;

将视口的底部向上拖动到模式的底部会将其向上移动到select2元素的上方,并且顶部值会相应地更改。我可以用我自己的CSS覆盖它来修复它。

我刚刚注意到,这种行为一直持续到我在Chrome中打开开发者控制台为止。之后,每次单击select2元素时,模式都会显示在其上方,并一直持续到我重新加载页面为止。如果在开发者面板打开的情况下重新加载页面,问题将无法重现。嗯……只有开发者控制台连接到Chrome窗口的底部,问题才会消失。如果我把它放在一边,或者在它自己的窗口中打开它,问题就会重现。在更大的显示器上,即使开发人员控制台打开,问题仍然存在。如果我向上拖动它以缩小可用的视口空间,问题就会消失。这显然与浏览器视口的垂直大小有关。当你说“模态”时,你是指Select2选项容器吗?你能提供你遇到麻烦的代码吗,或者至少提供一个精简版本?嘿@Dan Abrey,是的,这就是我的意思。单击select2元素时弹出的对话框。恐怕唯一值得一看的代码就是上面的代码,在这里我初始化了select2元素。我没有做什么特别的事。