2012-04-05 2 views
0

Я прочитал более дюжины сообщений и ответов ... безрезультатно.fancybox callbacks

Что не так с этим простым кодом, что мне здесь не хватает. Ни один из проверенных обратных вызовов не работает.

 
$("#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 («click») Обратные вызовы работают нормально со стандартным щелчком.

Что я пробовал - безуспешно.

 
//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()); 

это я довольствовалась

мне не нравится это очень много ты так печенье хранится несколько вне FancyBox розжига

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

Я не понимаю, что стоит за идеей хранить куки-файлы внутри fancybox. Вы можете попытаться вызвать функцию cookie 'onClosed', а не' onComplete'. Это правда, fancybox очищается после себя, когда закрывается. – JFK

+0

вот для чего нужны обратные вызовы - чтобы получить что-то (cookie - это что-то); onClosed/onComplete - он не работает ни в одном; зачем печенье внутри? Я пытался использовать один экземпляр fancybox для onload/click и установки/уничтожения файлов cookie по мере необходимости. Наконец, я использовал 2 - см. Здесь: http://tinyurl.com/cdldjrh – Jeffz

0

«OnComplete «обратный вызов не требует кавычек; Вы можете сделать простой:

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

Я проверил оба варианта - нет удачи - есть так много жалоб на обратные вызовы fancybox, что меня заставляет задуматься, если они не только «у нас есть» тип функциональности - он есть - так как у других это есть, но он редко работает - я тоже проверен на удаленном сервере - тот же результат – Jeffz

+0

Для кавычек fancybox v1.3.x на самом деле рекомендуется. Это не так для v2.x – JFK

+0

JFK спасибо ..... – Jeffz