我使用 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/