2014-08-30 110 views
0

我想從我的網站中的所有頁面中刪除一個div。如何從所有頁面的按鈕點擊DOM中刪除div?

我目前有以下代碼,將刪除div,但重新加載時/當用戶導航到另一個頁面,我需要檢查用戶是否點擊了按鈕。如果他們然後顯示:none或者將其從DOM中一起移除。

如果js不是這種方式,請指點我正確的方向。

$('#togglemydiv').on('click', function() { $('#notice').addClass('hide'); });

在此先感謝

+0

你應該處理這個服務器端(與會話)。 – Axel 2014-08-30 15:38:04

+3

如果您需要讀寫一些遵循不同頁面的數據,那麼正確的方法是使用:Cookie或LocalStorage。試試谷歌。 – Linial 2014-08-30 15:38:10

+0

@Linial謝謝我已經去了一個本地存儲解決方案。它的工作原理除了div加載時,你會在一瞬間看到身體背景顏色。有什麼辦法可以防止這種情況發生。我已經添加了display none,所以當它被禁用時,你不會在重新加載時看到它的第二個spit。 – con322 2014-08-30 18:13:49

回答

0

對於這個實現在同一個頁面用戶點擊使用jQuery和在同一時間發送一個Ajax請求,並設置會話變量那裏,所有頁面的用戶沒有必要點擊或者你不需要通過jquery進行檢查。只需使用您的服務器端語言即可完成此操作。

0

從dom中刪除元素只是暫時爲當前已被瀏覽器加載的頁面。對服務器的每個請求都會接收到原始的html頁面而不做任何修改。最好的方法是直接在服務器上更改站點內容,例如使用php。

由於http無法記住用戶的設置,因此您需要添加cookie或設置會話變量以記住用戶值。在每個網站請求上加載會話值(或cookie值),並根據您顯示或隱藏頁面內容的值。

0

添加一個會話變量,用於保存用戶是否單擊該按鈕。然後您可以檢查頁面重新加載變量是否已設置。唯一的問題是,當他們離開網站回來時,會話將會丟失,並且一個新的會話開始,div會回來。在這種情況下,記錄IP或創建用戶數據庫來存儲變量可能會更好。

<?php if ($_SESSION['name_of_variable']=='clicked'){<div style="display:none"></div>}else{ 
<div style="display:none"></div>};)?> 
0

您必須在某處保存此狀態。例如,您可以創建一個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" 
     } 
    }); 
});