jQuery setTimeout - 无法读取属性' preventDefault'未定义的

时间:2014-06-21 05:59:46

标签: javascript jquery

我有这样的脚本:

$(document).on('focus.inputmask.data-api', '[data-mask]', function (e) {
    var $this = $(this)
    if ($this.data('inputmask')) return
    e.preventDefault()
    $this.inputmask($this.data())
});

我想为这个函数设置setTimeout,这就是我试过的

$(document).on('focus.inputmask.data-api', '[data-mask]', setTimeout(function (e) {
    var $this = $(this)
    if ($this.data('inputmask')) return
    e.preventDefault()
    $this.inputmask($this.data())
}, 10))

但我在控制台上看到的错误如下:

Uncaught TypeError: Cannot read property 'preventDefault' of undefined 

1 个答案:

答案 0 :(得分:1)

是的,e根据您的代码undefined,因为您已经在timeout函数的回调函数参数的位置传递了.on()对象。 / p>

尝试,

$(document).on('focus.inputmask.data-api', '[data-mask]', function (e) {
  setTimeout(function (e) {
    var $this = $(this)
    if ($this.data('inputmask')) return
    e.preventDefault()
    $this.inputmask($this.data())
  },10);
})