jQuery preventDefault()问题

时间:2014-01-13 10:25:14

标签: javascript jquery events

我的问题是没有办法让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正常工作吗?

2 个答案:

答案 0 :(得分:1)

您需要确保在加载DOM后执行脚本:

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

有关详情,请参阅此页:http://api.jquery.com/ready/

答案 1 :(得分:0)

你在哪里加入你的剧本?如果在脚本加载时将脚本包含在HEAD中,则DOM中不存在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(); });

虽然我建议使用.on()函数,因为它会在新生成的DOM元素上动态绑定事件:

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