Мне нужна кнопка «больше не показывать»

0

Я большой любитель, когда дело доходит до javascript и jquery, я едва могу его прочитать.

Я попробовал решение, размещенное на FancyBox - "Не показывать это сообщение еще раз"? , однако, похоже, это не работает для меня, когда я проверяю его.

Мне нужна кнопка, которая скрывает определенный элемент (по идентификатору) и создает куки файл, который гарантирует, что этот человек не увидит это сообщение еще раз.

У меня есть этот текст:

<p id="guidelinestext" class="guidelinestext">Please make sure to read our <a target="_blank" href="http://www.uqreview.com/review-guidelines/">Review Guidelines</a> before posting a review.</p>

и мне нужна кнопка, которая говорит "Не показывать это снова",

Очень жаль, если это глупый вопрос. Надеюсь, на это легко ответить. Спасибо.

  • 0
    Это не то, как это работает, если вы большой любитель, вы должны хотя бы попробовать что-то для себя, а затем спросить, если вы не понимаете ... что вы спрашиваете, кто-то сделает работу за вас.
  • 0
    Покажите свой код, пожалуйста. Этот вопрос, кажется, хорошо охватывает все, как и этот: stackoverflow.com/questions/18833775/…
Показать ещё 1 комментарий
Теги:
web

3 ответа

7

просто используйте html5 localStorage

<button id="forgetMe">Don't show this again</button>

<script>
    if(localStorage.getItem("DontShow")) {
        $("#forgetMe").hide();
    }
    $(document).on("click", "#forgetMe", function() {
        localStorage.setItem("DontShow", "true");
    });
</script>
0

Создайте кнопку:

<button id="dontshow" onclick="dontshow();return false;">Don't show this again</button>

Получить этот плагин: https://github.com/carhartl/jquery-cookie

установите cookie на кнопку:

function dontshow(){
    $.cookie('visited', 'yes', { expires: 30 }); // Set the cookie.
}

При запуске проверьте, существует ли файл cookie:

$(document).ready(function() {
    var visited = $.cookie('visited');
    if (visited == 'yes') {
        $("#guidelinestext").hide();
    } else {
        $("#guidelinestext").show(); // cookie has no value, so show the text
    }
});
  • 0
    Это не работает Вы можете проверить мой исходный код на uqreview.com/courses/biol2001 . У меня есть все это там, но это не похоже на работу. У меня также есть мой заголовок, загружающий файл jquery и файл cookie jquery. Пожалуйста помоги!
  • 0
    Если вы проверите это в Chrome и F12, то увидите, что произошла ошибка. Попробуйте jQuery (документ) .ready (function ($) {вместо $ (document) .ready (function () {
Показать ещё 3 комментария
0

Это простое использование плагина JQuery - JQuery Cookie:

$('#button-id').on('click', function() {
   $.cookie("buttonClicked", "YES"); 
});

Где-то в вашем коде, загружая главную страницу, например:

var isVisited = $.cookie("buttonClicked"); 
if(isVisited === 'YES') {
   showButton();
} else {
   hideButton();
}

var showButton = function() {
  $('#button-id').show();   
} 

var hideButton = function() {
  $('#button-id').hide();   
} 

Или что бы вы ни делали!

Если в любом случае вам нужно удалить кокету, вы можете позвонить:

$.removeCookie("buttonClicked");

редактировать

как я вижу на вашей веб-странице, вы делаете... страшный! Я предлагаю:

  • создайте свой файл custom.js
  • вызывать custom.js после того, как все jquery-плагины

Ваш файл custom.js будет:

(function($) {
    $(document).ready(function() {
         /* insert here code above */   
    });
})(jQuery);
  • 0
    $ .cookie - это стандартная функция jquery?
  • 0
    извините, я забыл ссылку!
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню