Uncaught TypeError 不是 AJAX 回调函数

Posted

技术标签:

【中文标题】Uncaught TypeError 不是 AJAX 回调函数【英文标题】:Uncaught TypeError is not a function on AJAX callback 【发布时间】:2016-10-25 03:18:44 【问题描述】:

在我的application.js 文件中,我有以下内容:

$(document).ready(function() 
  /* Activating Best In Place */
  jQuery(".best_in_place").best_in_place();

  $('.highlight_on_success').bind("ajax:success", function()$(this).closest('div.social-comment').effect('highlight'););
);

我正在使用Best In Place gem,它为我提供了上面的函数,可以在我的best_in_place 调用中使用。

但是,当我使用它时,我的 JS 控制台中出现此错误:

Uncaught TypeError: $(...).closest(...).effect is not a function application.self-440dd817e40548768e9.js:25 

我该如何解决这个问题并让它发挥作用?

【问题讨论】:

effect() 可能来自 jQueryUI。是否包含在页面中? 嗯,好的。不....我没有使用 jQueryUI。我可以为 vanilla jQuery 使用什么替代方案来获得类似的效果? 仅当您将其编写为名为 effect() 的 jQuery 插件时,因为它是从 best_in_place 内部调用的,我假设 你可以创建一个类似效果的 CSS 过渡,然后添加适当的类。 @Barmar 但要么必须修改原始插件以删除 effect() 调用,要么编写一个具有相同名称的 noop 插件并在 css 中执行此操作 【参考方案1】:

effect() 是 jQueryUI 而非 jQuery 核心的一部分,因此要么需要找到一个不同的编辑脚本,它除了某些 css 之外没有依赖项,要么在页面中使用 jQueryUI 来包含该功能。

我个人会寻找不同的编辑器,例如 X-ediable 或其他类似的插件

【讨论】:

以上是关于Uncaught TypeError 不是 AJAX 回调函数的主要内容,如果未能解决你的问题,请参考以下文章

Nodejs Browserify Uncaught TypeError:存在不是函数

Bootstrap Uncaught TypeError: $(...).modal 不是函数

Javascript Uncaught TypeError:AccountID不是一个函数

为什么Uncaught TypeError:$(...)。fulllCalendar不是函数?

jQuery Uncaught TypeError: $(...).tabs 不是函数

Vue Uncaught TypeError:fn.bind 不是函数