2011-05-05 90 views
0

我有一个工具提示谁正在通过ajax获取数据。我的问题是我想调整框的高度以适合数据(只是一些标记)。jquery Position()失败

这个盒子是绝对定位的,我想根据盒子的大小改变顶部定位,使底部边框始终接触下面的元素位置。

在铬,这是工作正常。但是在FireFox中,我似乎无法让它起作用。我试图通过调用.position()。top并且通过检索css值.css('top')来获得初始顶级CSS值。在FF中都不起作用。我不知道该怎么做。

var popup=$('#saved_descr_wrap'); 
var cur_height=popup.height(); 
var cur_top=popup.css('top'); 
cur_top=parseInt(cur_top); 



var entryHover = function(event){ 
    var favorite_id=2; 
    popup.show(); 

// var fave_id=$(event.target).closest('tr').attr('data-postid'); 

    $.get('{{Site}}/favorites/view/', {id:favorite_id}, function(data){ 
     popup.find('img').hide(); 
     $('#saved_note').text(data); 
     var new_height=popup.height(); 

     var c=cur_top + cur_height - new_height; 


     popup.css('top', c); 
    }); 

}; 

var exitHover=function(event){ 
// popup.hide(); 
    popup.css('top',cur_top); 
    $('#saved_note').text(''); 
    popup.find('img').show(); 
}; 

$('tbody tr').hoverIntent({over:entryHover,out:exitHover}); 

这是我拍的jQuery用户界面(也有失败):

 var entryHover = function(event){ 
    popup.position({my:"right bottom",at:"top right", of:"#main_box"}); 
    popup.show(); 

    var fave_id=$(event.target).closest('tr').attr('data-postid'); 

    $.get('{{Site}}/favorites/view/', {id:fave_id}, function(data){ 
     popup.find('img').hide(); 
     $('#saved_note').text(data); 

    }); 

}; 

var exitHover=function(event){ 
    popup.hide(); 
    popup.position({my:"right bottom",at:"top right", of:"#main_box"}); 

    $('#saved_note').text(''); 
    popup.find('img').show(); 
}; 

$('tbody tr').hoverIntent({over:entryHover,out:exitHover}); 

回答

1

您可以使用jQuery UI的功能?如果可以的话,你有没有看着the position function?

 $(".positionable").position({ 
      of: $("#parent"), 
      my: "top left", 
      at: "top left", 
     }); 
+0

嘿罗伯特,其实我试过,也没有结果。我通过我的网站的其余部分使用jQuery UI。由于某种原因,它不起作用 – Ben 2011-05-05 21:58:41

+0

你的html和css对于popup元素的外观如何: – Rob 2011-05-05 22:12:58