正如adeneo和Jeremy所提到的,不要使用內聯事件處理程序。他們會干擾你的jQuery事件處理程序。
簡單地合併2種功能於一體,它將工作:
$("#main a").bind("click", function (e) {
e.preventDefault();
var p = $(this).position();
$("#loader").css("top", p.top - 20);
$("#loader").toggle();
});
JSFiddle
如果我把我的函數裏面的功能它的工作原理。但我想在鏈接上使用不同的onclick函數。
如果您想在不同的鏈接上使用不同的onclick函數,請使用類(或ID)並使用jQuery進行適當的選擇。
HTML:
<div id="main">
<p><a class="doSomething" href="#">I will NOT JUMP!</a></p>
<p><a class="doSomethingElse" href="#">I will NOT JUMP</a></p>
</div>
的jQuery:
$("#main a.doSomething").bind("click", function (e) {
e.preventDefault();
var p = $(this).position();
$("#loader").css("top", p.top - 20);
$("#loader").toggle();
});
$("#main a.doSomethingElse").bind("click", function (e) {
e.preventDefault();
//Other code
});
JSFiddle demo
這不是1999年,擺脫了內聯事件處理程序,問題解決了! – adeneo 2015-02-24 11:04:17
adeneo是正確的,你綁定兩個點擊一個單一的元素。一個使用inline javascript'onclick =「...」',另一個使用jQuery'$(「#main a」)。bind(「click」...',只需刪除內嵌的一個。 – 2015-02-24 11:07:42
您可以將點擊使用jQuery或純js(相同的@adeneo和@Jeremy)爲了在事件發生後檢查某些特定的行爲(取決於用戶來自的鏈接),我會在處理事件的函數內部執行它 – newpatriks 2015-02-24 11:13:54