我有这个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