Вопрос по jquery – Функция Fancybox onComplete не работает

6

По какой-то причине он просто не работаетonComplete функция. Однако он загружает блок fancybox. Мой HTML:

<ul>
    <li class="orange">

           #1 <a href="#text">click here</a>

           <div id="text" class="text">text text text</div>

    </li>
</ul>

Мой jquery:

 jQuery('li a').fancybox({       
    'autoDimensions':   'false',
    'width' :   631,
    'height':   256,        
    'onComplete':function(){

        alert('running');
        jQuery('.fancybox-skin').css('background-color',colour);
    }
});

предупреждение не запускается. Я также пытался изменить функцию события наonClosed и другие события, и ничего.

это решение для fancybox 2 / Stackoverflow.com вопросы / 10295746 / ... Mauro Bosagna
ты рассматривал? Jsfiddle.net / 3Nf4c JFK

Ваш Ответ

5   ответов
2

Fancybox версии 2 не поддерживаетonComplete. Оно используетafterLoad.

jQuery('#tips li a').fancybox({       
    'autoDimensions':   'false',
    'width' :   631,
    'height':   256,        
    afterLoad:function(){

        alert('running');
        jQuery('.fancybox-skin').css('background-color',colour); // colour to 'red' for example. typo
    }

});
0

похоже на опечатку

jQuery('#tips li a').fancybox({       
'autoDimensions':   'false',
'width' :   631,
'height':   256,        
'onComplete':function(){

    alert('running');
    jQuery('.fancybox-skin').css('background-color',colour); // colour to 'red' for example. typo
}
});

Рабочий пример

это не работает, да, он загружает предупреждение, но цвет bg не меняется Claire
ункция @onComplete работает правильно? Вы говорите, что загружает предупреждение. но вы хотите изменить.fancybox-skin фоновый цвет? не могли бы вы предоставить ссылку на сайт agriboz
я не нашел.fancybox-skin селектор в jquery.fancybox-1.3.4.css agriboz
18

onComplete - это опция обратного вызова для fancybox v1.3.x, в то время какfancybox-skin учебный клас был представлен до версии 2.x, ..... поэтому я предполагаю, что вы используете версию 2.x, не так ли?

пции @Fancybox v2.x являются новыми и не совместимы с предыдущими версиями; эквивалент дляonCompleteпция @ (v1.3.x) теперь являетсяafterLoad (v2.x) опция обратного вызова.

Проверьтеhttp: //fancyapps.com/fancybox/#doc для полного списка опций, методов и обратных вызовов для fancybox v2.x

Спасибо за это. Я искал здесь - Fancybox.net это что-то друго Claire
Это в основном тот же плагин (и один и тот же автор), но версии 1.x и 2.x имеют разные веб-страницы из-за их различных функций и лицензионных планов. Пожалуйста, не забудьте пометить этот ответ как правильный, если вы так считаете. Благодарность JFK
На самом деле,afterShow будет более разумно использовать, если вы планируете добавлять какие-либо события.afterLoad срабатывает, как только он готов к загрузкед это вообще что-то показывает Junaid Bhura
@ JunaidBhura: мы смотрим на вопрос / ответ, которому почти год, и в то времяafterLoad был правильным обратным вызовом для использования. Сегодня, если вы спросите меня снова, я бы использовалbeforeShow с последней версией fancybox (v2.1.4) ..... к сожалению, очень трудно обновлять большинство ответов в SO, и люди должны знать, что некоторые ответы могут быть устаревшими. JFK
7

afterShow Я думаю, это правильный эквивалентonComplete в Fabxybox 2

Это был правильный ответ для меня. Я добавлял карту изображений к одному слайду из набора.afterShow сделал работу как задумано.afterLoad не было правильным событием для добавления этого атрибута:$('.fancybox-image').attr('usemap', '#Map'); jerrygarciuh
0

Постнагрузки вместо того OnComplete

Похожие вопросы