我有這個JavaScript函數:jQuery - 如何使用e.preventDefault();在JavaScript函數
function putVote(trackid, vote) {
}
,我調用這個函數trought:
<a href="#" onClick="putVote('data1', 'data2')">Link</a>
我想在putVote()
使用e.preventDefault();
,但我想我錯了從某種角度。我該怎麼做?
乾杯
我有這個JavaScript函數:jQuery - 如何使用e.preventDefault();在JavaScript函數
function putVote(trackid, vote) {
}
,我調用這個函數trought:
<a href="#" onClick="putVote('data1', 'data2')">Link</a>
我想在putVote()
使用e.preventDefault();
,但我想我錯了從某種角度。我該怎麼做?
乾杯
做最簡單的事情將是return false
從處理程序中的功能
(return false
只會在putVote
工作,如果處理程序都有return putVote('data1', 'data2)
)。
但作爲尖尖的說,一個更好的方法是從附加JavaScript的事件處理程序,最容易使用的庫/框架,如jQuery或原型實現。
是的,我知道,但我想使用的preventDefault :) – markzzz 2011-03-02 14:09:09
@markzzz爲什麼你要使用的preventDefault? – Skilldrick 2011-03-02 14:10:22
爲什麼不! :)好的,我會使用返回false。 – markzzz 2011-03-02 14:16:59
最簡單的方法:
<a href="#" onClick="putVote('data1', 'data2'); return false;">Link</a>
舊的答案,但我需要的確切的東西。謝謝! – Yuschick 2014-09-13 15:14:40
如果你正在使用jQuery。
JS:
$("#link").click(function(evt) {
evt.preventDefault();
putVote('data1', 'data2');
});
HTML:
<a href="#" id="link">Link</a>
如果你正在使用jQuery的最新版本,HTML5的DOCTYPE。
JS:
$("#link").click(function(evt) {
evt.preventDefault();
var $self = $(this);
putVote($self.data("one"), $self.data("two"));
});
HTML:
<a href="#" id="link" data-one="data1" data-two="data2">Link</a>
在你的情況下,使用jQuery風格的結合,關鍵是要能夠通過特定的元素參數的處理程序(「data1」,「data2」)。 「現代」的方式來做到這將是這樣的:
<a href="#" class='data-clickable' data-click-params='["data1", "data2"]'>Link</a>
然後,在「準備」處理(或其他合適的地方),你會綁定您的處理程序:
$('a.data-clickable').click(function(e) {
var elementData = $(this).data('click-params');
//
// ... handle the click ...
//
e.preventDefault();
});
的「elementData」變量最終(在這種情況下,無論如何)都是一個有兩個值的數組,「data1」和「data2」。你可以給JSON-符號值「數據-foo」的屬性,當你使用jQuery的獲取屬性「數據()」方法,它會自動爲你解碼JSON。
你還沒有告訴我們爲什麼* *您想使用的功能......不過,我可以說,你可能會更好使用jQuery綁定事件處理程序,而不是硬編碼成一個屬性。 – Pointy 2011-03-02 14:06:58
你可以通過事件來'putVote',然後調用'的preventDefault()'那裏。 – pimvdb 2011-03-02 14:07:18