2010-07-26 73 views
0

我被建議使用這個,因爲我遇到了問題,只有第二次點擊時,鏈接才能在FireFox中工作。這是在名爲leftColumn的div中顯示外部html。firefox中需要雙擊(JQUERY)

$(function(){ 
    $('#ulWithAllTheLinks').delegate('li a', 'click', function(e){ 
    e.preventDefault; 
    $('#leftColumn').load(this.href); 
    }); 
}); 

我的問題是,這顯示HTML在一個新的頁面內容,我知道它有什麼與此有關:

<ul id="one"> 
    <li><a href="content.html">First Link</a></li> 
</ul> 

但我不知道如何此鏈接功能

+0

你的問題到底是什麼?似乎有幾個問題正在進行...... – balupton 2010-07-26 23:09:05

+0

你說「我的問題是」,那麼你發表一個聲明。你在這裏有什麼問題? – 2010-07-26 23:09:55

+0

只要詢問他如何阻止超鏈接以默認方式運行,即如何在點擊鏈接後停止瀏覽器? – jakeisonline 2010-07-26 23:26:59

回答

2

event.preventDefault()是一個函數,所以你需要括號就完了,就像這樣:

$(function(){ 
    $('#ulWithAllTheLinks').delegate('li a', 'click', function(e){ 
    e.preventDefault(); 
    $('#leftColumn').load(this.href); 
    }); 
}); 

沒有.preventDefault()(或return false;)工作正常,默認行爲將發生...去那個頁面。

+0

我一直傾向於'return false;' - 但前者是一種更有效的方法嗎? – jakeisonline 2010-07-26 23:22:01

+0

@jakeisonline - 它取決於你在做什麼之後,例如,如果有另一個處理器在這個之上,就像一個'$(「a」)。live(...)'然後'return false'會使事件停止它的軌道,防止泡沫,而'e.preventDefault()'不會。作爲一般規則,我使用「最輕」的方法去做需要的事情......它避免了必須追蹤事件停止的地方......如果我有充分理由這樣做,我只會停下來。這就是說,它主要是偏好,事件的實際性能差異是無限小的。 – 2010-07-26 23:30:03

+0

啊,這很有道理。我想我一直只是需要停下來的事情死在它的軌道上。 – jakeisonline 2010-07-26 23:31:56