javascript - 使用 fancybox 和 jquery cookie

标签 javascript jquery cookies fancybox

我在 http://cobosboutique.com 上的页面加载时加载了 fancybox 。我想添加一个 cookie,让它每 7 天加载一次。我找到了这个答案https://stackoverflow.com/questions/23431862/fancybox-popup-once-time-for-session#=但是当我使用它时,我收到一条错误,指出无法加载内容。我尝试对该线程发表评论,但我没有足够的积分来做到这一点。有谁知道是什么原因造成的吗?我现在已经删除了 cookie 的代码。但这就是代码。

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<script src="../template/js/jquery.cookie.js"></script>
<link rel="stylesheet" href="../template/fancybox/source/jquery.fancybox.css?v=2.1.5" type="text/css" media="screen" />
<script type="text/javascript" src="../template/fancybox/source/jquery.fancybox.pack.js?v=2.1.5"></script>
<link rel="stylesheet" href="../template/fancybox/source/helpers/jquery.fancybox-thumbs.css?v=1.0.7" type="text/css" media="screen" />
<script type="text/javascript" src="../template/fancybox/source/helpers/jquery.fancybox-thumbs.js?v=1.0.7"></script>
<script type="text/javascript">
    function openFancybox() {
    setTimeout(function () {
        $('#yt').trigger('click');
    }, 500);
};
</script>
<script type="text/javascript">
    $(document).ready(function () {
    var visited = $.cookie('visited');
    if (visited == 'yes') {
        return false; // second page load, cookie active
    } else {
        openFancybox(); // first page load, launch fancybox
    }
    $.cookie('visited', 'yes', {
        expires: 0 // the number of days cookie  will be effective
    });
    $("#yt").click(function () {
        $.fancybox({
            href: this.href,
            type: "inline"
        });
        return false;
    });
});
</script>
<a class="fancybox" href="#yt">test</a>
    <div id="yt" style="display:none; text-align: center;"><h2>VIP TEXT CLUB!</h2>
<h3>Get exclusive access to sales and new arrivals!</h3>
<h3>Text "COBO" to 51660 and receive 10% off your entire purchase! </h3>
<h3>10% offer only applies to first time text club subscribers.</h3></div>

最佳答案

请记住,#yt 是您的目标内容的 ID(您的隐藏 div 应该位于 fancybox 中),因此您除了具有 class fancybox 的选择器之外,无法绑定(bind)触发该选择器的 click 事件> (trigger 元素),它实际上指向 #yt 选择器:

<a class="fancybox" href="#yt">test</a>

因此,在您的 openFancybox() 函数中,您需要替换此行

$('#yt').trigger('click');

...通过这个

$('.fancybox').trigger('click');

然后将click事件绑定(bind).fancybox,替换此行

$("#yt").click(function () {

...通过这个

$(".fancybox").click(function () {

参见JSFIDDLE

关于javascript - 使用 fancybox 和 jquery cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27627352/

相关文章:

perl - Perl 中用于 Web 控制面板登录的唯一 Web 浏览器标识 ID

javascript - 网页中这个js.js?version=1364903356是什么意思?

javascript - 如何停用 console.log 和警报?

javascript - 如何将纬度和经度(从 gps 方法)转换为 geometry.location Google map 对象

javascript - 如何使用post请求将一个很长的字符串从js传递到php?

javascript - 如何将我的附加按钮添加到此 jQuery mp3 播放器?

jquery - 通过类搜索改变跨度样式

jquery - 无法将 jQuery gem 安装到 Rails

jquery - 使用 cookie 保存切换分区的状态

php - 让 Varnish 在 Magento 上工作