javascript - fadeIn 回调在 jquery.ajax 成功内部不起作用

标签 javascript jquery ajax callback

我使用 AJAX 获取一些数据,在 body 前面添加元素,然后显示它。显示后,我需要对新元素执行一些客户端操作(例如,我需要使用 codecogs' script 渲染 Latex )。我的代码如下所示:

$.ajax({
/* ... */
success: function(data){
    /* new element generation... */
    $(newelement).fadeIn(100, LatexIT.render('*'));
},
/* ... */ });

如您所见,我调用 LatexIT.render('*') 作为 fadeIn 的回调。它应该在动画结束后立即执行 LatexIT.render('*') 执行的操作。但是,当从 $.ajax success 调用时,回调不起作用,尽管淡入淡出本身正常发生。

更新:我尝试用任何简单的函数替换 LatexIT.render('*') 但它不起作用。并且 fadeIn(100, function () { LatexIT.render('*') }); 从 ajax 成功之外调用时确实工作。

最佳答案

LatexID.render('*')调用 .render 方法而不是绑定(bind)它的语法。除非它本身返回一个函数(这不太可能),否则您需要使用以下语法:

.fadeIn(100, function () { LatexIT.render('*') });

你还可以这样做:

.fadeIn(100, LatexIT.render.bind(undefined, '*'))

假设您需要支持的浏览器有.bind

关于javascript - fadeIn 回调在 jquery.ajax 成功内部不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15750839/

相关文章:

php - POST 数据中未拾取附加元素

javascript - 使用 AJAX 请求从另一个域获取图像数据

javascript - 如何在脚本中 append PHP代码

ajax - 如何将 url 重定向到另一个

javascript - iOS Chrome 上的 HTML5 历史 API

JavaScript JS 可选

javascript - 使用 AngularJS 和 Lodash 将数组转换为字符串

javascript - 如果表单字段为空,则在 blur() 之后将类更改回正常

javascript - 查找大写子字符串并用首字母缩略词标签换行

javascript - 如何使用 jQuery 部分更新 DOM