0

私を殺してしまう問題が 1 つあります。24 時間 div (ウィンドウにまたがる div) を非表示にしようとしましたが、いくつかの間違いを犯してしまい、うまくいきませんでした。誰かが私のテスト リンクhttp://testare.besaba.comをチェックしてください。ファイル #span {display: none;} の最後にこの行を追加しました。ここ jsfiddle.net/Nd4xb/ でコードが正常に機能することがわかりますが、私のサイトでのみ機能しません。

ありがとうございました

HTMLコード:

<div id="span" class="promo_header">



  <a href="javascript:void(0)" class="close_promo_header" id="close" onclick="hidePromoPanel('/');"><font color="white">Close </font><span>X</span></a>

<button>Clear cookie</button></div>

JavaScript コード:

<script>
$(document).ready(function () {

if (!readCookie('hide')) {
    $('#span').show();
}
/*else {
    $('#span').hide();
}*/


$('#close').click(function () {
    $('#span').slideUp("slow");
    createCookie('hide', true, 1)
    return false;
 });

 $('button').click(function() {
    eraseCookie('hide');
 })

 });

 function hidePromoPanel() {}

 function createCookie(name, value, days) {
 if (days) {
    var date = new Date();
    date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
    var expires = "; expires=" + date.toGMTString();
 } else var expires = "";
 document.cookie = name + "=" + value + expires + "; path=/";
 }

 function readCookie(name) {
 var nameEQ = name + "=";
 var ca = document.cookie.split(';');
 for (var i = 0; i < ca.length; i++) {
    var c = ca[i];
    while (c.charAt(0) == ' ') c = c.substring(1, c.length);
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
 }
 return null;
 }

 function eraseCookie(name) {
 createCookie(name, "", -1);
 } </script>
4

1 に答える 1

1

このようなことを試してください。jsFiddleでビルドしただけですが、面白いので保存できませんでした:(

<div id="promo" style="display:none">
    Some message here 
    <button>Ok</button>
</div>

<script>
function setCookie(c_name, value, exdays) {
    var exdate = new Date();
    if (exdays) exdate.setDate(exdate.getDate() + exdays);
    var c_value = escape(value) + ((exdays) ? '; expires=' + exdate.toUTCString() : '');
    document.cookie = c_name + "=" + c_value;
}

function getCookie(name) {
    var re = new RegExp(name + "=([^;,]+)");
    var value = re.exec(document.cookie);
    return (value !== null) ? unescape(value[1]) : null;
}

if (!getCookie('promo')) {
    document.getElementById('promo').style.display = 'block';
}

document.getElementById('promo').getElementsByTagName('button')[0].onclick = function () {
    document.getElementById('promo').style.display = 'none';
    setCookie('promo', '1', 1);
};
</script>
于 2013-03-17T19:08:53.803 に答える