如何在所选文本字段下显示div

时间:2011-05-11 18:10:39

标签: html datepicker tooltip

我不需要任何日历,日期选择器或时间戳......我只是想知道......

有人可以告诉我......当用户点击某些特定文字字段时,div会如何显示...

请参阅此链接.. http://pttimeselect.sourceforge.net/example/index.html

我不想'显示日历或时间选择器..但可能是一些带有一些细节的图像..这不是问题的一部分..我只是想用“blabla”数据显示一些div ... < / p>

谢谢

哦......我找到了..

我得到了..在jquery中我找到了一个“offset();”的方法这进一步给了我'左边和顶部的价值.. ..谢谢

ALHAMDULILLAH

2 个答案:

答案 0 :(得分:2)

好吧,我能想到的最好的方法是使用JQuery并在点击元素时动态生成div。

div应该绝对定位并设置为display:none(如果你想要下滑效果)。这是我为展示div而制作的快速示例:

$('.moreInfo').click(function(){
  var data = "Whatever data you want to show in the div";
  var div = $('<div />').text(data)
                        .css('display', 'none')
                        .css('position', 'absolute')
                        .css('top', $(this).outerHeight() + $(this).offset().top)
                        .css('left', $(this).position().left)
                        .css('width', '200px')
                        .css('height', '300px')
                        .css('border', '1px solid #000');
  $(this).after(div);
  div.slideDown(500);
});

(CSS可能也是一个单独的CSS规则,并且除了'top'和'left'属性之外你想要修改)

这会为每次点击打开一个新的div,因此您可能想要检查div是否已经存在,然后将其删除。

答案 1 :(得分:1)

最简单的方法是在焦点和模糊上定义输入字段的函数:

<input id="sampleInput" type="text" onfocus="showDiv()" onblur="hideDiv()" />
<div id="content" style="position:absolute;top:0;left:0;visible:false;">...</div>

编辑:这是一些让你开始的伪代码

//This will give you the distance from the top of the page to the input box
inputTop =  inputElement.offsetTop;     

//This will give yout he height of the input element    
inputHeight = inputElement.offsetHeight;

//Now set the top of the content div to be the sum of the offsets:
contentDiv.style.top = inputTop + inputHeight;

//Now show the content div
contentDiv.style.visible = "true";