搭建舞臺:如何將javascript事件從一個元素傳遞到另一個元素?
我有2個層疊在另一個之上。底層包含鏈接(簡單圖像),頂層包含高級工具提示,如底層的懸停。這些工具提示可能很大(它們可以輕鬆地重疊到其他鏈接上,並且幾乎總是與他們正在進行工具提示的鏈接重疊)。
我的問題:
我想發生在底層上我的鼠標懸停事件,然後鼠標懸停顯示在上層的提示。通過這種方式,當您離開底部鏈接時,上層中的工具提示消失,並且可以顯示新鏈接的工具提示。
如何從頂層獲取事件並將它們傳遞到下面的圖層?所以頂層是事件透明的。
示例HTML:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style type="text/css" media="screen"><!--
.tile { width: 100px; height: 100px; position: absolute; }
.tile:hover, over:hover {border: 1px solid black;}
.over { width: 100px; height: 100px; position: absolute; display:none}
.stack, #sandwich { width: 400px; height: 400px; position: absolute; }
#tile1 {top: 50px; left: 50px;}
#tile2 {top: 75px; left: 10px;}
#tile3 {top: 150px; left: 310px;}
#tile4 {top: 250px; left: 250px;}
#tile5 {top: 150px; left: 150px;}
#over1 {top: 55px; left: 55px;}
#over2 {top: 80px; left: 15px;}
#over3 {top: 155px; left: 315px;}
#over4 {top: 255px; left: 255px;}
#over5 {top: 155px; left: 155px;}
--></style>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
<script>
$(document).ready(function(){
$('div.tile').click(function(){
$('#log').html(this.id + " clicked");
return false;
})
$('div#top').click(function(){
$('#log').html('Top clicked');
return false;
})
});
</script>
</head>
<body>
<div id="sandwich">
<div class="stack" id="bottom">
<div class="tile" id="tile1">1</div>
<div class="tile" id="tile2">2</div>
<div class="tile" id="tile3">3</div>
<div class="tile" id="tile4">4</div>
<div class="tile" id="tile5">5</div>
</div>
<div class="stack" id="top">
<div class="over" id="over1">Tooltip for 1</div>
<div class="over" id="over2">Tooltip for 2</div>
<div class="over" id="over3">Tooltip for 3</div>
<div class="over" id="over4">Tooltip for 4</div>
<div class="over" id="over5">Tooltip for 5</div>
</div>
</div>
<div id="log">
</div>
</body>
</html>
用JavaScript我驗證過的事件一樣工作正常,僅頂部被點擊的例子。但我基本上希望「超過」項目是事件透明。
發表一些例子html – mpapis 2010-12-03 21:06:09
希望html幫助的例子。 – silkcom 2010-12-03 21:22:35