TypeError:event.preventdefault不是函数

时间:2014-08-24 23:40:32

标签: javascript jquery

为什么我会为此代码获取该代码? 我如何正确传递(或不传递)事件?

(原始问题和下面代码的答案是Extracting common logic to a reusable function in JavaScript - 这个问题与方法有关,这个问题与event的问题有关,这看似不同且更具体。)

$(function(){ 
  var updateUi = function (event) {
       event.preventdefault();
       $("span.show_hide").toggleclass("shown hidden");
       $("table").toggleclass("wide narrow");
  };

  $("a[data-toggle-description-length]='toggle'").click(function(event){
    updateUi(event);
    $.get('/toggle_full_details');
  }); 

  $("a[data-toggle-description-length-refocus]='toggle'").click(function(event){
    updateUi();
    $("input[type='text']:first").focus();   // focus
    $.get('/toggle_full_details');
  });
});

我该如何避免呢?

2 个答案:

答案 0 :(得分:15)

错字:

由于错字,这是一个真正的类型错误。见下文。

  • 使用event.preventDefault();代替!

进一步添加额外的:event.preventDefault()不是jQuery的东西。这是一个DOM事件模型的东西。从现在开始,我将把jQuery留在板凳上,因为它在内部处理事件的方式略有不同,所以如果我们可以互换地引用这两个事件,它只会引起混淆和不正确的信息。

preventDefault这可以是评论,但为什么不回答。 :)

  

如果调用此方法,则事件的默认操作不会   触发。

答案 1 :(得分:4)

你拼错了大声笑

preventDefault()不是preventdefault()