我有以下函数,它将给定元素放在前面,并更改了几个属性。有问题的元素是一个选择框。
function expandTags(event){
var pos = $(this).position();
$(this).css("position", "absolute");
$(this).css("left", pos.left + "px");
$(this).css("top", pos.top + "px");
$(this).css("height", $(this)[0].scrollHeight + 20 + "px");
$(this).attr("size", $(this).data("list_item").data("tags").names.length);
$(this).css("zIndex", 9999);
}
除了 zIndex 之外,代码都可以工作——虽然元素确实被更新为具有这个值,但它似乎没有任何影响。当Select Box的高度扩展时,它在其下方的一行中重叠了另一个选择框(本质上相同)。位于此选择框的前面。无论我将框 zIndex 设置为什么,它始终保持在顶部。
动作后框的 HTML 如下:应该在顶部的那个。
<select style="width: 100px; height: 173px; position: absolute; z-index: 9999; left: 252px; top: 0px;" size="11" class="tags" name="StaggeredMessage[0][message][tags]" id="StaggeredMessage_0_message_tags" >
<option></option>
....
</select>
应该在下面(但在上面)的那个:
<select style="width: 100px; height: 80px; position: relative; z-index: 100;" size="4" id="StaggeredMessage_1_message_tags" name="StaggeredMessage[1][message][tags]" class="tags" title="Default for Carrier Id: ">
<option></option>
....
</select>
它们处于不同的相对位置
和标签。
我看不出这可能是什么原因,有什么想法吗?
谢谢