2010-07-26 71 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