【问题标题】:Why does an object not yet in the DOM lack the on method in jQuery?为什么不在 DOM 中的对象缺少 jQuery 中的 on 方法?
【发布时间】:2012-04-19 04:58:39
【问题描述】:

我有这个 jQuery 的 sn-p 错误:

$("<input>").attr("type", "text")
    .attr("name", "wordFilter")
    .attr("placeholder", "Keywords...")
    .on("keyup", filterMyData)
    .appendTo(sidebar);

sidebar 之前定义为$("#sidebar")filterMyData 是一个函数。为什么 Chrome Web Developer 会发出此错误?

Uncaught TypeError: Object [object Object] has no method 'on'

在线.on("keyup", filterMyData)

【问题讨论】:

  • 您使用哪个版本的 jQuery? "on" 在 1.7 中添加
  • 你使用什么版本的jquery? "on" 是在 jquery 1.7 中引入的,如果你有旧版本,它会给你那个特定的错误
  • 我有 1.6 与 d3 兼容。谢谢,我应该更仔细地研究一下。
  • 仅供参考,您可以在创建时指定属性,而不是所有 attr 调用:$('&lt;input/&gt;', {type: 'text', name: 'wordFilter', placeholder: 'keywords...', keyup: filterMyData}).appendTo(sidebar);
  • 哇,谢谢!我不知道可以提供一个对象作为第二个参数。这为我节省了大量的attr 电话。

标签: javascript jquery


【解决方案1】:

尝试这样做,在 filterMyData 函数中

filterMyData()
{
    $(this).on(........);
}

如果它不起作用,您使用的是旧版本的 jQuery。我认为“on”是在 1.7 中引入的......

【讨论】:

    【解决方案2】:

    试试这个

    .on("keyup", filterMyData)
    

    或者

    .on("keyup", function(){filterMyData();})
    

    【讨论】:

      猜你喜欢
      • 2022-01-14
      • 2019-03-11
      • 2011-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-21
      • 1970-01-01
      • 2020-11-02
      相关资源
      最近更新 更多