【发布时间】:2019-04-16 18:24:05
【问题描述】:
我在一页中使用bootstrap、jquery ui、select2 等。这导致select2 下拉列表相对于select2 的显示值(选择后)向左偏移了-5px。
我尝试使用以下代码将下拉列表向右移动:
var select2_pos = $("html body span.select2-container.select2-container--default.select2-container--open").position();
select2_pos.left = select2_pos.left + 5;
$("html body span.select2-container.select2-container--default.select2-container--open").position(select2_pos);
但这给了我错误:
TypeError: select2_pos is null
有谁知道我如何做到这一点?
【问题讨论】:
-
你使用过 $(document).ready() 吗?看起来 jQuery lib 没有加载
-
我做到了。它已加载。这是一个旧版本
(1.7.1)虽然由于它带有OpenJSGrid2.1.7。 -
好的第一件事:您不能使用 .position() 设置新的“左”位置。根据api.jquery.com/position,这个函数只能获取元素的位置。如果是相对定位,您可以使用 $(elemen).css("left", select2_pos.left + "px") (或 ".css("margin-left", ...) 之类的东西。
-
谢谢,但它在
select2_pos.left = select2_pos.left + 5;上抛出错误 -
看起来
jquery position不适用于隐藏元素,我假设下拉列表最初会被隐藏。不确定是否有其他方法可以获取位置或在显示位置时如何设置。
标签: jquery jquery-select2