Подождите, чтобы загрузить плагин для выполнения других Jquery - PullRequest
0 голосов
/ 17 июля 2011

Я использую два плагина:

1) Загрузка твитов 2) Разбивка этих твитов

Но нужно загрузить твиты для пагинации.Я использую следующий код, но не работает

$(document).ready( function(){ 
$("#twittTime").tweet({
    avatar_size: 32,
    count: 20,
    fetch: 20,
    template: "{text} {time}",
    filter: function(t){ return ! /^@\w+/.test(t["tweet_raw_text"]); },
    username: "user",
    loading_text: "Cargando Timeline ..."
});

$(".tweet_list").live({ load: function() {
    $('.tweet_list').easyPaginate({
            step:4,
            alert: 'Hola'
    }); 
},
});
});

Ответы [ 2 ]

3 голосов
/ 18 июля 2011

Я поддерживаю jquery.tweet.js.Виджет запускает «загруженное» событие после того, как твиты были отображены на странице, так что вы можете просто сделать это:

$(document).ready( function(){ 
$("#twittTime").tweet({
    avatar_size: 32,
    count: 20,
    fetch: 20,
    template: "{text} {time}",
    filter: function(t){ return ! /^@\w+/.test(t["tweet_raw_text"]); },
    username: "user",
    loading_text: "Cargando Timeline ..."
}).bind("loaded",  function() {
    $('.tweet_list').easyPaginate({
            step:4,
            alert: 'Hola'
    }); 
});
});

Пример этого есть в файле index.html в комплекте и в tweet.seaofclouds.com page.

1 голос
/ 17 июля 2011

Плагин должен иметь метод обратного вызова, который сообщает вам, когда он будет завершен. Оттуда вы запускаете вашу $(".tweet_list") функцию.

EDIT:

Я редактирую здесь, потому что лучше показывать примеры кода. Если вы можете отредактировать плагин JS, я бы предложил добавить ваш собственный обратный вызов ... это действительно очень просто.

Сначала давайте добавим complete() метод к плагину. Если вы откроете tweet.js, то поищите var s = $.extend({, именно здесь для плагина установлены значения по умолчанию. Внутри метода $.extend() будет список настроек, пройдите до самого конца и добавьте следующее:

Примерно строка № 30:

filter: function(tweet) {
    return true;
},
/* Our callback method we are adding */
complete: function() {
    return true;
}

Затем нам нужно вызвать эту функцию в конце запроса JSON AJAX.

Перейдите к строке # 201 под оператором if (s.refresh_interval). Затем после закрытия } добавить s.complete();

Что вы в основном сделали, так это вызвали функцию complete после загрузки контента. Я проверил это локально, и он работает, поэтому попробуйте и посмотрите, делает ли он то, что вы ищете.

Удачи!

Редактировать 2: Я нашел плагин на Github и с надеждой представил эту функцию, когда / если они выйдут с обновлением, он будет иметь это, так что вам не придется добавлять его каждый раз.

...