我有以下代码在 IE 和 Firefox 中运行良好,但在 Opera 或 Chrome 中无法正常运行。该代码基本上创建了一个直接在输入之后插入的 DIV。在 IE 和 Firefox 中,新的 div 将与输入重叠。但是在 Opera 和 Chrome 中,div 将出现在输入的右下角旁边,定位不正确。有什么建议么?
编辑:我已经包含了我希望它看起来像的图像,它在 Chrome 和 Opera 中没有这样做。重叠是故意的。在 Chrome/Opera 中,绿色 div 位于右下角,这是一个起始位置,但位置 CSS 类应该修改它。
(来源:aspadvice.com)
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.2.min.js " type="text/javascript"></script>
<script type="text/javascript">
jQuery.fn.makeDiv = function () {
$(this).each(function () {
var className = "wFWn";
$(this).after("<div class='" + className + "'>The Div</div>");
var c = $(this).next("." + className);
var topStartPosition = $(this).outerHeight();
var leftStartPosition = $(this).outerWidth();
c.addClass('green');
c.addClass('position');
var pos = $(this).offset();
var iTopOffset = 0;
if (c.css("top") != "auto")
iTopOffset = parseInt(c.css("top").substring(0, c.css("top").indexOf("px")));
var iLeftOffset = 0;
if (c.css("left") != "auto")
iLeftOffset = parseInt(c.css("left").substring(0, c.css("left").indexOf("px")));
c.offset({ top: pos.top + topStartPosition + iTopOffset, left: pos.left + leftStartPosition + iLeftOffset });
c.css("position", "relative");
});
return this;
};
$(document).ready(function () {
$("#txtTest2").makeDiv();
});
</script>
<style type="text/css">
.position {top: -4px; left: -100px; width: 140px; font-size: 11px; }
.green { background-color: lime; border: solid 1px black;}
</style>
</head>
<body>
<div id="two">
<input name="txtTest2" type="text" maxlength="10" id="txtTest2" /><br />
</div>
</body>
</html>