2014-01-13 71 views
1

我的問題是,沒有辦法使preventDefault()工作。 這裏是我的代碼:jQuery preventDefault()問題

HTML:

<a class="list-ui-controlcol-link list-ui-controlcol-link-delete" href="http://localhost/lmvc_trunk/pages/delete/17">Törlés</a> 

JQUERY:

$(".list-ui-controlcol-link-delete").click(function(event){ 
     event.preventDefault(); 
}); 

即使我複製粘貼jQuery的自己的網站(http://api.jquery.com/event.preventdefault/)原例如,它不能正常工作。 你能解釋我爲什麼發生這種情況,以及如何使preventDefault正常工作?

+0

你肯定單擊處理程序被調用? –

+4

你的意思是瀏覽器仍然按照鏈接?你在哪裏放置你的jQuery腳本?嘗試將它放在頁面的底部,就在關閉之前,或者將其包裝在DOM就緒回調中。我的猜測是,你試圖在元素在DOM中之前應用click-event處理程序。 –

+0

似乎工作正常[在這裏](http://jsfiddle.net/a9tm6/)。 – Rikesh

回答

0

你在哪裏包含腳本?如果在腳本加載時將腳本包含在HEAD中,則不存在a.list-ui-controlcol-link-delete。

試着這樣做:

<html> 
<head> 
    <title>test</title> 
</head> 
<body> 
    <a href="/test" class="list-ui-controlcol-link-delete">Torles</a> 

    <script src="http://code.jquery.com/jquery-latest.min.js"></script> 
    <script src="app.js"></script> 
</body> 
</html> 

其中app.js包含:

$('.list-ui-controlcol-link-delete').click(function(e) { e.preventDefault(); }); 

雖然我推薦使用的。對()函數,因爲它會dinamically綁定的事件上新產生的DOM元素:

$(document).on('click','.list-ui-controlcol-link-delete',function(e) { e.preventDefault(); }); 
1

您需要確保腳本在加載DOM後執行:

$(document).ready(function() { 
    $(".list-ui-controlcol-link-delete").click(function(event){ 
     event.preventDefault(); 
    }); 
}); 

詳情請參閱此頁:http://api.jquery.com/ready/