我想從我的網站中的所有頁面中刪除一個div。如何從所有頁面的按鈕點擊DOM中刪除div?
我目前有以下代碼,將刪除div,但重新加載時/當用戶導航到另一個頁面,我需要檢查用戶是否點擊了按鈕。如果他們然後顯示:none或者將其從DOM中一起移除。
如果js不是這種方式,請指點我正確的方向。
$('#togglemydiv').on('click', function() { $('#notice').addClass('hide'); });
在此先感謝
我想從我的網站中的所有頁面中刪除一個div。如何從所有頁面的按鈕點擊DOM中刪除div?
我目前有以下代碼,將刪除div,但重新加載時/當用戶導航到另一個頁面,我需要檢查用戶是否點擊了按鈕。如果他們然後顯示:none或者將其從DOM中一起移除。
如果js不是這種方式,請指點我正確的方向。
$('#togglemydiv').on('click', function() { $('#notice').addClass('hide'); });
在此先感謝
對於這個實現在同一個頁面用戶點擊使用jQuery和在同一時間發送一個Ajax請求,並設置會話變量那裏,所有頁面的用戶沒有必要點擊或者你不需要通過jquery進行檢查。只需使用您的服務器端語言即可完成此操作。
從dom中刪除元素只是暫時爲當前已被瀏覽器加載的頁面。對服務器的每個請求都會接收到原始的html頁面而不做任何修改。最好的方法是直接在服務器上更改站點內容,例如使用php。
由於http無法記住用戶的設置,因此您需要添加cookie或設置會話變量以記住用戶值。在每個網站請求上加載會話值(或cookie值),並根據您顯示或隱藏頁面內容的值。
添加一個會話變量,用於保存用戶是否單擊該按鈕。然後您可以檢查頁面重新加載變量是否已設置。唯一的問題是,當他們離開網站回來時,會話將會丟失,並且一個新的會話開始,div會回來。在這種情況下,記錄IP或創建用戶數據庫來存儲變量可能會更好。
<?php if ($_SESSION['name_of_variable']=='clicked'){<div style="display:none"></div>}else{
<div style="display:none"></div>};)?>
您必須在某處保存此狀態。例如,您可以創建一個cookie:
$('#togglemydiv').on('click', function() {
$('#notice').addClass('hide');
document.cookie="notice=hide";
});
,當用戶進入到另一個頁面,你必須從cookie檢查狀態:
$noticeClass = 'hide';
if(isset($_COOKIE['notice']) && $_COOKIE['notice'] == 'show') {
$noticeClass = 'show';
}
比通過$noticeClass
變量視圖:
<div class="<?php echo $noticeClass ?>">My notice</div>
或者您可以保持這個狀態在您的數據庫中:
$('#togglemydiv').on('click', function() {
$('#notice').addClass('hide');
$.ajax({
type: "POST",
url: http://yoursite.com/save-notice-status
data: {
noticeStatus: "hide"
}
});
});
你應該處理這個服務器端(與會話)。 – Axel 2014-08-30 15:38:04
如果您需要讀寫一些遵循不同頁面的數據,那麼正確的方法是使用:Cookie或LocalStorage。試試谷歌。 – Linial 2014-08-30 15:38:10
@Linial謝謝我已經去了一個本地存儲解決方案。它的工作原理除了div加載時,你會在一瞬間看到身體背景顏色。有什麼辦法可以防止這種情況發生。我已經添加了display none,所以當它被禁用時,你不會在重新加載時看到它的第二個spit。 – con322 2014-08-30 18:13:49