你可以使用jQuery .hover()
而且jQueryUI position utility把你想讓他們的div。
下面是一個例子。你可以用許多不同的方法做到這一點我認爲重要的是,直到元素可見時,position()方法纔會起作用。至少那是我所經歷的。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.js"></script>
<style type="text/css">
* {font-family:Calibri}
.data {width:100px;border:1px solid #000;display:none}
.cell {width:200px;border:1px solid #ddd}
</style>
<script type="text/javascript">
$(function() {
$(".cell").hover(
function() {
var $td = $(this);
var divId = '#div-' + this.id.split('-')[1];
//show it first or it doesn't position right
$(divId).show();
$(divId).position({
my: 'left center',
at: 'right center',
of: $td,
collision: 'none'
});
},
function() {
var divId = '#div-' + this.id.split('-')[1];
$(divId).hide();
}
);
});
</script>
</head>
<body>
<table width="200" cellspacing="3" cellpadding="2">
<tr><td id="td-1" class="cell">Data</td></tr>
<tr><td id="td-2" class="cell">Data</td></tr>
<tr><td id="td-3" class="cell">Data</td></tr>
<tr><td id="td-4" class="cell">Data</td></tr>
<tr><td id="td-5" class="cell">Data</td></tr>
<tr><td id="td-6" class="cell">Data</td></tr>
</table>
<div id="div-1" class="data">div-1</div>
<div id="div-2" class="data">div-2</div>
<div id="div-3" class="data">div-3</div>
<div id="div-4" class="data">div-4</div>
<div id="div-5" class="data">div-5</div>
<div id="div-6" class="data">div-6</div>
</body>
</html>
此代碼,雖然在概念上是正確的,是可怕的ineff icient,並可以肯定地做一些清理。 – 2010-09-23 23:19:43
@Yi,我不會把它稱爲可怕的例子。更何況我沒有關於海報的標記和數據真實的細節。這個想法是展示一個位置特性的例子,而不是爲它們編碼。該代碼工作正常 – fehays 2010-09-23 23:44:49
。 – zod 2010-09-26 23:56:54