0

我在我的 Wordpress 的任何页面上设置了一个延迟弹出的 Fancybox,我希望在用户在提供的输入中提交某些内容后将其禁用,或者如果它在给定的时间内不显示用户点击绕过链接。我已经尝试了在该站点周围找到的一些脚本,但似乎没有任何效果,这是我目前设置的。

function openFancybox() {
        setTimeout( function() {$('.pop').trigger('click'); },20000);
    }
    $(document).ready(function() {
        var visited = $.cookie('visited');
        if (visited == 'yes') {
            return false;
        } else {
            openFancybox();
        }
        $.cookie('visited', 'yes', { expires: 7 });
        $('.pop').fancybox();
    });
4

2 回答 2

1

请尝试以下方法,看看是否有帮助。

openFancybox = function{
   setTimeout( function() {$('.pop').trigger('click'); },20000);
}

$(document).ready(function() {
   //Declare your cookie.
   $.cookie('visited','no', { expires: 7 });

   //Test to see if your cookie equals 'no', if true then run the fancy box.
   if ($.cookie('visited') == 'no') {
           openFancybox();
   }

   //Your Input or click to stop the fancy box
   $('#StopFancyBox').on('click',function(){
       $.cookie('visited', 'yes');
   });
});

正如@Brad 提到的,您可以使用 Web 开发人员工具进行测试,以了解您的 cookie 值在各个阶段是什么。只需转到 web.console 并回电$.cookie('visited')

错误

jquery.cookie.jsGET http://www.coreytegeler.com/bolivares/wp-content/themes/max-magazine/source/cookies/jquery.cookie.js 404 (Not Found)

以上似乎是因为 jquery.cookie.js 文件没有引用正确的位置。

/bolivares/:72SyntaxError: Expected token '('

以上实际上是我的错:)对不起。在声明函数 openFancybox 时,我错过了 ()。所以应该是openFancybox = function(){

jquery-plugins.min.js:13TypeError: 'undefined' is not an object (evaluating 'e.browser.msie')
superfish.js:123TypeError: 'undefined' is not a function (evaluating 'jQuery('ul.nav').superfish()')
woocommerce.min.js:1TypeError: 'undefined' is not a function (evaluating 'e(".plus").live')

以上分别是与插件 jquery-plugins.min.js、superfish.js 和 woocommerce.min.js 的冲突。很抱歉,我无法对这些提供太多指导。

/bolivares/:259ReferenceError: Can't find variable: myLoop

您在主 html 页面的第 259 行回调 myLoop(i)。但是搜索你所有的脚本,这并没有在任何地方声明。

于 2013-02-25T17:32:35.613 回答
1

是的,您可以完美地编辑它,您所要做的就是创建一个 settimeout 值,以便花式框在一段时间后弹出,然后像这样编写程序

    <script type="text/javascript">
function openFancybox() {
    setTimeout( function() {$('#fancybox-manual-b').trigger('click'); },5000);
}
$(document).ready(function() {
    var visited = $.cookie('visited');
    $.cookie('visited', 'yes', { expires: 7 }); /*write this first*/
    if (visited == 'yes') {
        function callback(a){
                return function(){
                alert("Hello " + a);
                                    }
                                    }
                var a = "world";
                setTimeout(callback(a), 2000); /*let the page load first*/
                a = "subscriber";
    } else {
        openFancybox();
    }
    $('#fancybox-manual-b').fancybox();
});
</script>

如果你愿意,你可以更改(我写这个是为了检查 cookie 是否正常工作)

if (visited == 'yes') {
        function callback(a){
                return function(){
                alert("Hello " + a);
                                    }
                                    }
                var a = "world";
                setTimeout(callback(a), 2000);
                a = "idiotteen";
    }

if (visited == 'yes') {
return false;
}

让我知道这是否对您有帮助

于 2013-10-05T05:56:37.183 回答