var xOffset = 100; // x distance from mouse
var yOffset = 100; // y distance from mouse  var top = $(this).offset.top;//(e.pageY + yOffset);
var left = $(this).offset.left+$(this).width();//(e.pageX + xOffset);
$('body').append( '<div id="vtip"><p>' + $(this).attr('tip') + '</p></div>' ); //tip为input的自定义属性,提示内容
$('#vtip').css("top", top+"px").css("left", left+"px"); 
希望点击input时能在input框后面显示一个提示窗。#vtip的css已设置绝对定位,如果使用注释后面的e.pageX/e.pageY是可以在鼠标附近显示提示窗,但是我要在input框后面就死活不行,求解

解决方案 »

  1.   

    建议你用offset函数去设置位置, 取代css
      

  2.   


                    var top = $('#txtTips').position().top;
                    var left = $('#txtTips').position().left + $('#txtTips').width();
                    $('#divTips').offset({ top: top, left: left });
      

  3.   

    我用了一下alert,一个显示undefined, 一个显示NaN。证明没有获取到任何数值?
    我再把函数写一下$(document).ready(function(){
    var xOffset = 100; // x distance from mouse
        var yOffset = 100; // y distance from mouse  


    //input action
    $("[tip]").focus(
    function(e) {
    if($(this).attr('tip') != undefined){
    $(this).nextAll('span').remove();
    var top = $(this).offset.top;//(e.pageY + yOffset);
    var left = $(this).offset.left+$(this).width();//(e.pageX + xOffset);
    alert(top);
    alert(left);
    //$('body').append( '<div id="vtip"><p>' + $(this).attr('tip') + '</p></div>' );
    //$('#vtip').css("top", top+"px").css("left", left+"px"); 
    //$('#vTip').offset({ top: top, left: left });
    //$('#vtip').bgiframe();
    }
    }
    ).blur(function(){
    ...}
    });