【问题标题】:typeerror $(...) is not a functiontypeerror $(...) 不是函数
【发布时间】:2015-11-27 22:16:18
【问题描述】:

我遇到了一个问题,我有这个 sn-p:

$('#new_comment').live('ajax:beforeSend', function(evt, xhr, settings) {
  $(':submit', this).click(function() {
    return false;
  });
});

我用它来禁用提交按钮,因此如果您多次输入,则不允许提交多个 cmet。

问题是我将生产中的 JS 编译到一个文件中,因此代码在所有页面上都可用,并且似乎影响了代码的其他部分。

我在控制台中得到的错误是:

未捕获的类型错误:$(...).live 不是函数

如何阻止这种情况发生?

【问题讨论】:

  • live 已在一段时间前被删除。请改用 on 和委托表示法。
  • live() 已在 很久 之前被弃用并从源中删除。你应该改用on()

标签: javascript jquery


【解决方案1】:

您使用的是哪个版本的 jquery? jQuery .live() 已在 1.9 及更高版本中删除。

改用这个:

.on(eventType, selector, function)

参考:https://api.jquery.com/on/

【讨论】:

    【解决方案2】:

    live 已被弃用,并且已经在 stackoverflow 上给出了它的替代方案的答案,早先检查这个jquery's live() is deprecated. What do I use now?

    【讨论】:

      【解决方案3】:

      live() 的使用已被弃用。

      .live() 已替换为 $(document).on('event', 'selector', function() {});
      .delegate() 已替换为 $('selector').on('event', 'selector', function() {});
      .bind() 已替换为 @987654327 @

      【讨论】:

        猜你喜欢
        • 2020-06-29
        • 2020-06-17
        • 1970-01-01
        • 2020-03-03
        • 2021-06-05
        • 2019-10-03
        • 2017-03-06
        • 2018-12-23
        • 2021-08-12
        相关资源
        最近更新 更多