jQuery Cycle и jTweetsAnywhere вместе - PullRequest
0 голосов
/ 03 марта 2012

Я хочу использовать jTweetsAnywhere , чтобы показать мои последние твиты, а затем мне нравится использовать jQuery Cycle , чтобы циклически перебирать твиты один за другим.Кажется, проблема в том, что разметка из jTweetsAnywhere должна быть загружена до того, как jQuery Cycle загрузится или jQuery Cycle не будет работать.

jTweetsAnywhere:

$(document).ready(function () {
    $('#latest-tweets').jTweetsAnywhere({
        username: 'Twittername',
        count: 5,
    });
});

jQuery цикл:

$(window).load(function() {
    $('#latest-tweets ul').cycle({
        fx: "scrollDown",
        easing: "easeOutCubic",
        speed: 600,
        timeout: 5000
    });
});

Как получить разметку для загрузки твитов перед циклом jQuery?

Ответы [ 3 ]

0 голосов
/ 03 марта 2012

Если обратного вызова нет, вы можете попробовать timer проверить, загружена ли разметка твитов, а затем инициализировать цикл jQuery

.

псевдокод

var intervalID; 
intervalID = setInterval(initJQueryCyle, 500); // Half second
function initJQueryCycle(){
  // Check DOM here
  if ($('#latest-tweets li').length === 5)
  {
    // Stop timer
    clearInterval(intervalID);

    // initialiseJQueryCycle here
    $('#latest-tweets ul').cycle(options);        
  }
}
0 голосов
/ 07 марта 2012

Просто отправил обновление в jTweetsAnywhere github repo . Плагин теперь поддерживает два новых обработчика событий, которые вызывались при заполнении твита.

onReadyHandler вызывается ровно один раз после первоначальной загрузки твитов и добавил в DOM. Сразу после вызова этого обработчика события onFeedPopulationHandler вызывается с параметром invocations, установленным в 0.

onFeedPopulationHandler вызывается каждый раз, когда добавляются новые твиты для подачи твита - и тем самым для DOM. Поставляемый обработчик событий должен иметь следующий интерфейс: function (invocations, options) {} Параметр invocations содержит текущее количество обращений к обработчик, начиная с 0 для первого вызова. Этот обработчик событий называется либо для заполнения канала с помощью подкачки или автоматического обновления.

Пример:

$(document).ready(function()
{
    $('#jta_testfeed').jTweetsAnywhere(
    {
        searchParams: 'q=html5',
        count: 5,

        parts: ['connect-button', 'login-info', 'tweet-box', 'tweets'],

        showTweetFeed:
        {
            autoConformToTwitterStyleguide: true,
            showProfileImages: true,

            paging:
            {
                mode: 'more'
            },
            autorefresh: 
            {
                mode: 'trigger-insert',
                interval: 30
            },
            showTimestamp:
            {
                refreshInterval: 10
            }
        },
        onReadyHandler: function()
        {
            if (console)
            {
                console.log('onReadyHandler: # of children = ' + $('.jta-tweet-list').children().length);
            }
        },
        onFeedPopulationHandler: function(invocations)
        {
            if (console)
            {
                console.log('onFeedPopulationHandler: invocations: ' + invocations + ', # of children = ' + $('.jta-tweet-list').children().length);
            }
        }
    });
});
0 голосов
/ 03 марта 2012

Вам нужно будет проверить, есть ли у вашего плагина обратный вызов для завершения, и начать слайды оттуда.Проверьте плагин документы / API

...