等待加载插件以执行其他Jquery

时间:2011-07-17 00:34:43

标签: jquery plugins load

我正在使用两个插件:

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 个答案:

答案 0 :(得分:3)

我是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页面上有一个例子。

答案 1 :(得分:1)

该插件应该有一个回调方法,告诉您何时完成。从那里开始运行$(".tweet_list")功能。

编辑:

我在这里编辑,因为它更适合显示代码示例。如果您可以编辑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请求结束时调用此函数。

if (s.refresh_interval)语句下面的第201行。然后在结束后}添加s.complete();

你基本上完成的是在内容加载后调用完整的函数。我在本地测试它并且它正在工作,所以试一试,看看它是否能满足您的需求。

祝你好运!

编辑2:我在Github上找到了这个插件并提交了这个功能,所以希望当/如果他们出来更新它会有这个,所以你不必每次都添加它。