2012-04-05 68 views
0

我已經讀了十多個帖子和答案......無濟於事。fancybox回調

這個簡單的代碼有什麼問題,我在這裏丟失了什麼。 沒有嘗試回調的作品。

 
$("#project_info").fancybox({ 
     'onComplete': function() { 
      console.log('log this'); 
      //$.cookie('fcookie', '1', {path: '/'}); 
     } 
    }); 
$("#project_info").fancybox().trigger("click"); 

和HTML

 
<a id="project_info" href="#project_display"></a> 
<div style="display: none;"> 
    <div id="project_display" style="width:100px; height:100px; overflow:auto;"> 
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
    </div> 
</div> 

注:本地WAMP

編輯:還遠程服務器上測試 - 帶下來的文件,以防止任何相互作用 - 同樣的結果

回答

0

我回答我自己的問題,解決方案我最後使用和測試執行。 也許有人認爲它有用。

fancybox 1.3中有一些東西在使用cookie的時候會殺死回調。

沒時間測試,它是什麼。

任何人都知道嗎?下面寫。

剛一說明:同樣的事情發生,當我試圖通過設置cookie的.trigger(「點擊」) 回調做工精細與標準的點擊。

我試過了 - 失敗。

 
//trial 1: does not work 
$("#project_info").fancybox({ 
    onComplete: function() { 
    $.cookie('fcookie', '1', {path: '/'}); 
    } 
}); 
$("#project_info").fancybox().trigger("click"); 

//trial 2: does not work 
function StoreCookie() { 
    $.cookie('fcookie', '1', {path: '/'}); 
} 
$("#project_info").fancybox({ 
    onComplete: function() { 
    StoreCookie() 
    } 
}); 
$("#project_info").fancybox().trigger("click"); 

//trial 3: does not work 
function StoreCookie() { 
    $.cookie('fcookie', '1', {path: '/'}); 
} 
$("#project_info").fancybox({ 
    onComplete: StoreCookie 
}); 
$("#project_info").fancybox().trigger("click"); 

//trial 3: does not work 
function StoreCookie() { 
    $.cookie('fcookie', '1', {path: '/'}); 
} 
$("#project_info").fancybox({ 
    // 
}); 
$("#project_info").fancybox().trigger("click", StoreCookie());//trial 1: does not work 
$("#project_info").fancybox({ 
    onComplete: function() { 
    $.cookie('fcookie', '1', {path: '/'}); 
    } 
}); 
$("#project_info").fancybox().trigger("click"); 

//trial 2: does not work 
function StoreCookie() { 
    $.cookie('fcookie', '1', {path: '/'}); 
} 
$("#project_info").fancybox({ 
    onComplete: function() { 
    StoreCookie() 
    } 
}); 
$("#project_info").fancybox().trigger("click"); 

//trial 3: does not work 
function StoreCookie() { 
    $.cookie('fcookie', '1', {path: '/'}); 
} 
$("#project_info").fancybox({ 
    onComplete: StoreCookie 
}); 
$("#project_info").fancybox().trigger("click"); 

//trial 3: does not work 
function StoreCookie() { 
    $.cookie('fcookie', '1', {path: '/'}); 
} 
$("#project_info").fancybox({ 
    // 
}); 
$("#project_info").fancybox().trigger("click", StoreCookie()); 

這個我定居

我不很喜歡你 因爲cookie被的fancybox以外有些存儲發射了

 
if (!$.cookie('fcookie')) { 
    $("#project_info").fancybox({ 
    onComplete: function() { 
     // 
    } 
    }); 
    $("#project_info").fancybox().trigger("click"); 
} 
$.cookie('fcookie', '1', {path: '/'}); 
+0

我不明白什麼是在fancybox內存儲cookie的想法。你可以嘗試的是調用cookie函數'onClosed'而不是'onComplete'。這是真的,fancybox關閉後自行清理。 – JFK 2012-04-05 16:47:35

+0

這就是回調的目的 - 讓事情進行(餅乾是事); onClosed/onComplete - 它既不工作也不工作;爲什麼cookie裏面?我嘗試使用一個fancybox實例進行onload/click並根據需要設置/銷燬cookie - 最後我使用了2 - 請參閱http://tinyurl.com/cdldjrh – Jeffz 2012-04-05 18:25:02

0

的「的onComplete 「回調不需要引號;你可以做一個簡單的:

$("#project_info").fancybox({ 
    onComplete: function() { 
    alert('Completed!'); 
    } 
}); 
+0

我測試了這兩種方法 - 無好運 - 有很多關於fancybox回調的投訴,它讓我懷疑,如果他們不僅「我們也有它」類型的功能 - 它在那裏 - 因爲其他人擁有它,但它很少工作 - 我也在遠程服務器上測試 - 相同的結果 – Jeffz 2012-04-05 13:14:55

+0

對於fancybox v1.3.x報價實際上是推薦的。是不是v2.x的情況 – JFK 2012-04-05 16:41:18

+0

肯尼迪謝謝..... – Jeffz 2012-04-05 18:02:25