使用jQuery在精确宽度的输入字段下方显示div

Lyo*_*yon 5 jquery

我目前使用以下代码将div直接放在焦点上的输入文本字段下方.问题是div的宽度因浏览器而异.有没有办法确保出现的div是我的输入字段的确切宽度?

  // get the field position
  var inputField = $('#inputfield');
  var fieldDiv = $('div.divname');
  var sf_pos    = field.offset();
  var sf_top    = sf_pos.top;
  var sf_left   = sf_pos.left;
  // get the input field size
  var sf_height = inputField.height();
  var sf_width  = inputField.width();

  fieldDiv.css("position","absolute");
  fieldDiv.css("left", sf_left);
  fieldDiv.css("top", sf_top + sf_height + 6);
  fieldDiv.css("width", sf_width);

  $('#inputfield').focus(function() {
    fieldDiv.fadeIn('medium');
  }).blur(function() {
    fieldDiv.fadeOut('medium');
  });
Run Code Online (Sandbox Code Playgroud)

mko*_*yak 2

我认为这可能与 IE 不尊重盒子模型有关,一些浏览器还会在宽度中包含边框,而其他浏览器则不会。

您是否尝试过使用 outterWidth() 而不是 width() ?

您还可以破解它并添加依赖于浏览器的偏移量,例如:

width += ($.support.boxModel ? 0 : 2);
Run Code Online (Sandbox Code Playgroud)