2014-02-07 2 views
0

Мне нужно это всплывающее окно, чтобы показывать только один раз для каждого посетителя. Когда пользователь нажимает кнопку закрытия, cookie должен запускаться и устанавливать всплывающее окно, которое не будет отображаться в течение 30 дней. Я попытался установить cookie самостоятельно, но безуспешно, поскольку у меня ограниченное понимание JavaScript. Я читал несколько сообщений, касающихся этого, но они не помогают мне.jQuery Dialog Popup Cookie

JavaScript:

<link rel="stylesheet" href="jquery-ui-1.10.3.custom/jquery-ui-1.10.3.custom.css" /> 
<script src="http://code.jquery.com/jquery-1.9.1.js"></script> 
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script> 
<script> 
$(function() { 
$("#dialog-modal").dialog({ 
height: 380, 
width: 500, 
modal: true, 
buttons: { 
    Ok: function() { 
     $(this).dialog("close"); 
     } 
    } 
}); 
}); 
</script> 

HTML:

<div id="dialog-modal" title="Please Note:" class="content-list"> 
    <p>If you are taking advantage of our 21 day risk free trial <strong>your credit card will not be charged for 21 days</strong> after you receive your new biofeedback headband.</p> 
    <ul> 
     <li>Only Available for residents of the USA</li> 
     <li>No Risk - 100% Money-Back Guarantee</li> 
     <li>If you’re not satisfied we even pay for your return shipping</li> 
    </ul> 
</div> 

Спасибо.

ответ

3

Вы можете использовать jquery cookie plugin. Если включить эту библиотеку, вы можете сделать следующее:

$(function() { 
    if (!$.cookie("notice-accepted")) { 
     $("#dialog-modal").dialog({ 
      height: 380, 
      width: 500, 
      modal: true, 
      buttons: { 
       Ok: function() { 
        $.cookie("notice-accepted", 1, { expires : 30 }); 
        $(this).dialog("close"); 
       } 
      } 
     }); 
    } 
}); 

Примечание: Вы хотите добавить style="display: none;" в свой диалог <div> поэтому не отображается, если вы не откроете диалог.

Demo on JSFiddle

+0

Работы. Спасибо вам! –

+0

Так что я просто понял, что это не сработает, если щелкнуть X, чтобы закрыть диалоговое окно. Какие-либо предложения? –

+1

@WolfCat - Один из вариантов заключается в том, чтобы скрыть кнопку X (закрыть). Я рекомендую технику из [этого ответа] (http://stackoverflow.com/a/4287933/859640). Конечно, если вы это сделаете, вы также должны установить 'closeOnEscape: false'; В противном случае пользователь может закрыть диалоговое окно, нажав клавишу «Esc». ([jsfiddle] (http://jsfiddle.net/Gvtfx/3/)) Еще один вариант - переместить код, который устанавливает cookie в обработчик событий для события «закрыть». Затем он будет выполняться независимо от того, как пользователь закрывает диалог. ([jsfiddle] (http://jsfiddle.net/Gvtfx/1/)) –