我正在尝试编写一个具有多个回调函数的函数。我这样做是对还是有更好的方法?
$('.question a').click(function(ev) {
$('.answers').load(url, function() {
$('#AnswerBox').addClass('mceEditor',
function() {tinyMCE.init({
theme : "advanced",
mode : "specific_textareas",
editor_selector : "AnswerBox",
elements: "AnswerBox",
plugins : "fullpage",
theme_advanced_buttons3_add : "fullpage",
});
})
})
return false;
});
我知道你可以用这种方式做2层功能,但是你还可以做更多吗?
答案 0 :(得分:1)
答案 1 :(得分:1)
任何函数范围都可以包含其他函数定义,这些函数定义可以包含更多的定义等等。
执行此操作时,这些函数定义仅在该函数范围内是本地的。由于任何函数作用域都可以包含其他函数定义,因此它可以根据您的需要进行深入,可能仅受限于给定javascript限制中的某些内部内存或堆栈限制。实际上,除非你故意制造一些没有实际用途的狡猾结构,否则你不太可能达到极限。
答案 2 :(得分:1)
是的,您可以嵌套更多函数,但回调函数用于了解异步事件何时完成。设置类不会异步发生,因此您在addClass中没有任何回调函数。所以应该是这样的,
$('.question a').click(function(ev) {
$('.answers').load(url, function() {
$('#AnswerBox').addClass('mceEditor').
tinyMCE({
theme : "advanced",
mode : "specific_textareas",
editor_selector : "AnswerBox",
elements: "AnswerBox",
plugins : "fullpage",
theme_advanced_buttons3_add : "fullpage"
});
});
return false;
});