我正在研究一個函數,以便當用戶單擊並保留鏈接時,鏈接不會將用戶發送到相應的鏈接。但是,我使用的功能不起作用。我想要的是用戶點擊一個鏈接,如果他們按住一秒以上,鏈接不再起作用,也不會觸發任何事件。經過一段時間的瀏覽之後,我找不到代碼出了什麼問題。所以我的問題是,我做錯了什麼? http://jsfiddle.net/rQP6g/2/mousdown down之後阻止鏈接事件延遲
<a href="www.google.com" >link</a>
<script>
var timeoutId = 0;
$('a').mouseup(function() {
timeoutId = setTimeout(function(e) {
e.preventDefault();
e.stopPropagation();
}, 1000);
}).bind('mouseup', function() {
clearTimeout(timeoutId);
});
</script>
我不確定我是否理解您正在嘗試執行的操作。鏈接通常在'click'時激活,而不是在'mousedown'上,所以'preventDefault'不會有幫助。您是否試圖做到這一點,因此用戶必須按住按鈕一秒才能使鏈接實際工作,但不能爲縮短點擊時間做任何事情。您描述的行爲至少是我的默認設置,我可以整天按住鼠標按鈕,而不是按照鏈接。 –
對不起,我感到困惑。我只需要按住鏈接,並在一兩秒之後,當我執行'mouseup'時,鏈接就是'preventDefault'。 – jason328
所有帶全局變量的解決方案都會產生爭用問題,每個鏈接都會影響其他的。 –