我最初的想法是这是一个语法问题,但我没有看到任何语法问题。我添加了调试代码,结果很奇怪,x
jQuery('#notification')
document.triggerNotification = function (type, message) {
jQuery(document.body).append("<div class='push-notification push-"+type+"' id='notification'>"+message+"</div>");
setTimeout(jQuery('#notification').fadeOut(1200, function () {
console.log(jQuery('#notification'));
jQuery('#notification').remove();
console.log(jQuery('#notification'));
}), 3000);
console.log('x');
}
Firebug提供以下输出:
x
[div#notification.push-notification]
[]
missing ] after element list - [Break on this error] [object Object]
一切都在成功执行,但它仍然是一个错误。
答案 0 :(得分:10)
setTimeout
期望函数作为其第一个参数。你给它一组jQuery对象。请尝试以下方法:
document.triggerNotification = function (type, message) {
jQuery(document.body).append("<div class='push-notification push-"+type+"' id='notification'>"+message+"</div>");
setTimeout(function() { jQuery('#notification').fadeOut(1200, function () {
console.log(jQuery('#notification'));
jQuery('#notification').remove();
console.log(jQuery('#notification'));
})}, 3000);
console.log('x');
}
请注意jQuery('#notification').fadeOut()
电话周围的匿名功能。使用当前代码,我希望fadeOut
立即执行,而不是在指定的3秒后执行。