0 レビュー
2 回答
javascript-スイートアラートでページがリロードされた後にdivを非表示にする
ajax投稿データでsweetalertを使用していて、ページのリロード後に非表示にしたいdiv要素があります。これを行うには、以下のコードから実行できます:
$(document).ready(function() {
$(document).on('click', '#approve', function() {
swal.fire({
title: 'Are you sure ?',
icon: 'warning',
showCancelButton: true,
confirmButtonText: 'Yes',
cancelButtonText: 'Cancel',
}).then((result) => {
if (result.value) {
$('.leftForms').each(function(e) {
valuesToSend = $(this).serialize();
$.ajax($(this).attr('action'), {
url: 'data.php',
type: 'POST',
method: $(this).attr('method'),
data: valuesToSend
})
.done(function(response) {
swal.fire({
title: 'Data berhasil diupdate!',
text: response.message,
icon: 'success'
}).then(function() {
location.reload();
localStorage.removeItem('leftcontent');
localStorage.getItem('rightcontent', data);
});
})
});
}
})
});
});
location.reload()の直後に、これを非表示にしたいのですが、それは可能ですか?
<div id="content1">
<p>blaa..blaa.. bla..</p>
</div>
わからない
0
レビュー
答え :
解決策:
なぜページをリロードするのですか?代わりにJavaScriptを使用してdivの削除を非表示にすることができます。 location.reload();
の代わりに$("#content1").remove();を実行して要素を削除するか、
$("#content1").hide()
を実行して要素を非表示にします。
また、 localStorage.removeItem('leftcontent');
とlocalStorage.getItem('rightcontent', data);
は実行されていません。
わからない
0
レビュー
答え :
解決策:
この選択を実際に維持したい場合は、明確な理由でデータベースに何かを保存する必要があります。ローカルストレージを使用できますが、ユーザーがキャッシュをクリアするとクリアされます。選択内容をローカルストレージに保存し、ページがリロードされたときにその変数を確認し、次のコマンドで要素を削除します。
...
.then(function() {
localStorage.setItem('choice','hide');
location.reload();
$(document).ready(function() {
if(localStorage.getItem('choice')=='hide'){
$("#content1").remove();
}
...
ただし、@ Gazmendが指摘したように、ページをリロードする必要はありません。他の理由でリロードする必要がない場合は、リロードする代わりに要素を削除するだけです。
わからない
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。