2012-01-23 51 views
1

我有一個錨列表項我怎樣才能打開新的標籤頁網頁JavaScript和中間點擊

<li> 
    <a href="page"></a> 
    <span>description</span> 
    <span>count</span> 
</li> 

使用JavaScript,只要單擊列表中的項目裏面,窗口打開錨的href。

我想讓瀏覽器知道,當它中間點擊它可以將列表項目作爲錨點對待,並打開一個新的選項卡。

我環顧四周,看到大多數人認爲這不能完成,但我認爲我的情況可能會有所不同。查看它的一種方法不是明確告訴瀏覽器打開一個新標籤,而是告訴瀏覽器在使用中間點擊時執行操作。

您認爲如何?

編輯:更新了html以獲得更準確的描述。錨點不是列表中的唯一元素

+0

我不明白這個問題......你想要一個默認行爲嗎?然後,只需使用鏈接和0 javascript ...(也許我不認識,因爲英語不是我的自然語言...) – Vinze

+0

謝謝,錨點不是列表項中的唯一元素。這裏有一些描述文字,這在語義上不是鏈接,但對於用戶體驗,我希望用戶能夠將其視爲鏈接。 –

+0

這是沒有理由不能包裝在''元素的一切。 – zzzzBov

回答

0

好吧,不要說sayers :),我已經想通了如何做到這一點。

隨着JS/jQuery我可以確定哪個按鈕被按下。只有當按下中間按鈕時,纔可以將錨點上的目標值更改爲「_blank」。

+0

您是如何使用'.click()'方法觸發點擊的?老版本的FireFox不支持'.click()'方法。 – gilly3

0

您希望列表項目可用作鏈接。最簡單,最可靠的方法是去除JavaScript並應用CSS來使鏈接填充列表項。然後,任何點擊列表項目將首先點擊鏈接。 Listamatic has many examples

+0

謝謝,我已經更新了html以獲得更準確的描述。該鏈接不是列表中的唯一元素 –

0

使用jQuery 1.7

$('ul').on('click', 'li', function(e){ 
    if(e.which == 2){ 
     var newWindow = $(this).find('a').attr('href'); 
     window.open(newWindow, 'newWindow'); 
     e.preventDefault(); 
    } 
}); 

就是這樣。 jQuery將event.button標準化爲event.which,因此您可以可靠地檢測到中間點擊。然後,只需打開一個新窗口。當然,不管它是否結束於新標籤或新窗口完全取決於用戶的瀏覽器偏好。

相關問題