2010-11-13 184 views
0

我創建了一個包含子元素錨元素的列表項元素。將鼠標懸停在父元素上顯示子元素的href元素

<ul id="machine-list"> 
    <li> 
     <a href="gosomewhere">Somewhere</a> 
    </li> 
</ul> 

使用jQuery我將一個click事件綁定到列表項。當用戶點擊時,我抓住第一個錨點標籤的href屬性並將用戶移動到該頁面。

雖然這很好地工作,我想模擬懸停在鏈接上的懸停效果通常具有:顯示狀態欄中引用的鏈接。不幸的是window.status沒有完成。

$(document).ready(function() { 
    $('#machine-list > li') 
    .css('cursor', 'pointer') 
    .click(
     function (e) { 
      window.location = $(e.target).find('a').attr('href'); 
     }) 
    .mouseover(
     function (e) { 
      window.status = $(e.target).find('a').attr('href'); 
     }); 
}); 

.mouseover中的函數應該如何獲得所需的效果?上面的代碼是宕機和骯髒的,所以任何一般反饋也將不勝感激。

+0

請注意,許多瀏覽器將阻止訪問更新狀態欄,專門用於避免URL欺騙 – Gareth 2010-11-13 23:44:27

+0

@Gareth甚至沒有想到這一點,我明白他們爲什麼會這樣做。 '.mouseover'肯定是觸發的,所以我猜測Chrome/Firefox會阻止更新。 – ahsteele 2010-11-13 23:47:02

回答

2

出於安全原因,window.statusdisabled by default在所有主流瀏覽器。我知道這個鏈接是對W3Schools的,但它清楚地說明了這一點。您可以影響狀態欄的唯一方法是讓用戶將鼠標懸停在您控制的URL的鏈接上。

+0

所以如果我鏈接到我的網站內部的另一個頁面不要「控制」它嗎?或者我錯過了解你答案的最後部分? – ahsteele 2010-11-14 18:26:28

+0

@ahsteele:通過「控制」,我的意思是你可以改變HTML或JavaScript鏈接的URL。鏈接不必指向服務器上的頁面。 – PleaseStand 2010-11-14 20:14:12

+0

這意味着用戶必須懸停在狀態欄的錨元素上才能顯示網址? – ahsteele 2010-11-14 22:45:55

1

你爲什麼不把你的內容放在標籤內?

<li><a>content goes here</a></li> 

這樣,它將始終具有其中任何內容的URL。以下是仍然有效的語法。

<li> 
<a> 
    <div> 
    <table> 
    <tr><td></td><td></td></tr> 
    <tr><td></td><td></td></tr> 
    <tr><td></td><td></td></tr> 
    <tr><td></td><td></td></tr> 
    <tr><td></td><td></td></tr> 
    <tr><td></td><td></td></tr> 
    <tr><td></td><td></td></tr> 
    <tr><td></td><td></td></tr> 
    <tr><td></td><td></td></tr> 
    </table> 
    </div> 
</a> 
</li> 
0

瀏覽器允許設置狀態欄嗎?您可以在現代瀏覽器中禁用該功能。

+1

謝天謝地...... – 2010-11-13 23:58:08

相關問題