2013-02-25 47 views
0

我有一個Fancybox設置延遲彈出在我的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(); 
    }); 
+0

爲什麼你有兩個單獨的文檔就緒功能?此外,您是否使用過螢火蟲/網頁開發者工具來查看您在各種狀態下Cookie的價值? – Brad 2013-02-25 17:13:46

+0

我對JavaScript很陌生哈哈,我是一個設計師,只是試圖教自己這個東西。 – 2013-02-25 17:19:02

+0

我會建議只包括相關的代碼..下面的13行不是。 – dev 2013-02-25 17:19:30

回答

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'); 
    }); 
}); 

As @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)。但是搜索你的所有腳本,這並不是在任何地方聲明的。

+0

依然彈出每個負載 http://www.coreytegeler.com/bolivares/ 你可以在這裏查看 – 2013-02-25 17:46:59

+0

看看你的網站,你**有很多**的錯誤。甚至在我們到達花式框之前,cookie並沒有在第一個實例中被創建。我已經編輯了所有錯誤的答案。我會強烈建議您事先糾正所有這些錯誤,並且您可能會發現您的Cookie將起作用。 – dev 2013-02-25 19:06:23

+0

哈哈,是的,謝謝你,我不知道這意味着什麼,但我會研究它。對不起,作爲一個業餘愛好者,但我感謝幫助! – 2013-02-25 20:06:17

1

是可以完美編輯你所要做的就是使的fancybox一段時間後彈出,然後如果你願意,你可以改變這樣寫

<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> 

程序創建的setTimeout值(我寫了這個檢查,如果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; 
} 

讓我知道這是否幫助你