1

我想开发我的简单自动完成功能,我对 JQuery 自动完成插件不感兴趣。

我只想在输入文本下方添加一个潜水,这段代码应该可以工作,我做错了什么?实现这一目标的方法是什么?

JSFiddle

如果您不想打开小提琴,这是代码:

$("#txtSearch").keypress(function (e) {
    if ($("#txtSearch").val().length >= 2) {
        var pos = $("#txtSearch").position();
        $('<div />', {
            'html': "xxxxxxxxx  xx  x"
        }).css({
            top: pos.top,
            left: pos.left,
            width: '300px',
            position: 'absolute',
            'background-color': 'Yellow'
        }).appendTo($("#txtSearch"));
    }
});
4

3 回答 3

6

试试下面的代码,

$("#txtSearch").keypress(function (e) {
   if ($("#txtSearch").val().length >= 2) {
      var pos = $("#txtSearch").position();
      $('<div />')
      .html("xxxxxxxxx  xx  x")
      .css({
         top: pos.top + $("#txtSearch").height()  + 1,
         left: pos.left,
         width: '300px',
         position: 'absolute',
         'background-color': 'Yellow'
      }).insertAfter($("#txtSearch"));
   }
});

演示:http: //jsfiddle.net/uZF5g/1/

于 2013-02-13T20:33:36.797 回答
2

您不能附加到 ( .appendTo) 空内容模型元素。请改用.insertAfter(或.insertBefore)。您可能还希望top至少将其添加到输入的高度。

http://jsfiddle.net/uZF5g/3/

于 2013-02-13T20:35:37.497 回答
0
$("#txtSearch").keypress(function (e)
 {
    if ($("#txtSearch").val().length >= 2)
    {
    $('#txtSearch').after('<div id="someID">');
    $('#someID').html('xxxxxxx xx x')
       .css({ 
             top: pos.top, 
             left: pos.left, 
             width: '300px', 
             position: 'absolute', 
             'background-color': 'Yellow' 
           })
       .appendTo($("#txtSearch"));  
    }
 });
于 2013-02-13T20:33:50.757 回答