【发布时间】:2015-09-19 16:39:50
【问题描述】:
我得到了一个简单的twitter bootstrap 消息框,我在上面写了一些小 jQuery 效果。
首先我淡出板子,一旦它完成淡出,我就在写我想要的,然后他们再次淡入。
我有 2 个版本:
第一个,使用本地定义函数:
function postMessage(message, context) {
if(typeof context === 'undefined')
context = "info";
var newClass = "alert alert-" + context;
var messageBoard = $("#messageBoard");
// Fade out
messageBoard.fadeOut('slow', postFadeOut);
var postFadeOut = function() {
alert("XX");
// $(this).attr('class', newClass);
// $(this).html(message);
// // Fade in again
// $(this).fadeIn('slow');
}
}
它不会触发alert("XX"),但是:
function postMessage(message, context) {
if(typeof context === 'undefined')
context = "info";
var newClass = "alert alert-" + context;
var messageBoard = $("#messageBoard");
// Fade out
messageBoard.fadeOut('slow', postFadeOut);
}
function postFadeOut() {
alert("XX");
// $(this).attr('class', newClass);
// $(this).html(message);
// // Fade in again
// $(this).fadeIn('slow');
}
将触发。为什么?
【问题讨论】:
-
尝试在调用
.fadeOut()之前声明var postFadeOut吗?当=运算符在if语句中时,if语句应该有括号{}吗?可以在问题中包含html吗?
标签: javascript jquery function callback scope