replaceWith フェードインおよびフェードアウト関数に小さな問題があります。
$('#form').fadeOut(300, function() {
var message = 'some message';
$(this).replaceWith($(message).fadeIn(300, function() {
var t = $(this);
setTimeout(function() {
t.fadeOut(300, function() {
location.reload();
});
}, 4000);
}));
});
フォームはフェードアウトしますが、他には何も起こりません。フォームは削除されますが、何も置き換えられません。
ここで何がうまくいかないのでしょうか?
これは実際にはオブジェクト リテラルの一部であり、次のようになります。
var formObject = {
submitFadeOutReload : function(url, arr) {
jQuery.post(url, arr, function(data) {
formObject.submitReplaceReload(data.message);
}, 'json');
},
submitReplaceReload : function(message) {
if (message !== '') {
formObject.objForm.fadeOut(300, function() {
$(this).replaceWith($(message).fadeIn(300, function() {
var t = $(this);
setTimeout(function() {
t.fadeOut(300, function() {
$(this).replaceWith($(clone).fadeIn(300));
});
}, 2000);
}));
});
}
}
};