在普通的JS函数中:
$('#friendsPop').jGrowl("testtmee");
不会工作,但是:
$.jGrowl("testmeee");
工作得很好..我已经测试了所有内容,如果我在函数外部建立一个链接,那么正常的a:这样的链接:
<a href="javascript:void(0);" onclick="$('#friendsPop').jGrowl('testme');">link</a>
它也很好用。但我希望激活
$('#friendsPop').jGrowl("testtmee");
在ajax成功通话后,我需要一个ID。
我该怎么办?
答案 0 :(得分:1)
您必须将此添加到您的ajax请求中:
var mesScripts = document.getElementById("mapleft").getElementsByTagName("script");
for (var i=0; i<mesScripts.length; i++) {
eval(mesScripts[i].innerHTML);
在ajax加载后改变<script>
。
答案 1 :(得分:1)
这是我的建议。由于无法向DIV放置jGrowl,无论是向左还是向右浮动,我们都会在渲染之后将其传输。以下是我在原始示例中的代码。
(function($){
$.jGrowl.defaults.pool = 5;
$.jGrowl.defaults.sticky = true;
$.jGrowl.defaults.life = 2500;
$.jGrowl.defaults.closer = true;
$.jGrowl.defaults.open = function(e,m,o) {$("#jGrowl").css('right', $('#header').offset().left + 17);};
/**
* @todo Add the twitter avatars to tweets, via tweet.user["profile_image_url"]
* @todo Find a way to calculate the dates relatively
* @todo Test is a cookie plugin is available so that some of this data can be 'cached'
*/
$.jTweet = function( username , total ) {
$.getJSON("http://twitter.com/status/user_timeline/" + username + ".json?count=" + total + "&callback=?", function(response) {
$.each(response, function(i, tweet) {
$.jGrowl( (tweet.text.replace(/[A-Za-z]+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&\?\/.=]+/, function(m) {
return m.link(m);
})) + ' [' + tweet.source + ']' , {
header: tweet.created_at ,
} );
});
});
};
$.jTweet('jquery', 5);
})(jQuery);
这里重要的部分是:
$.jGrowl.defaults.open = function(e,m,o) {$("#jGrowl").css('right', $('#header').offset().left + 17);};
将jGrowl对象的right属性与my header的left属性对齐。这基本上转移了它的位置,使它看起来好像它在标题的div下面。
答案 2 :(得分:0)
我不时使用jGrowl,我不记得曾经在一组选定的jQuery对象上调用它。 jGrowl的全部意义在于它在窗口级别生成“未附加”消息 - 一个全局消息流,无论它们是如何被调用(或从哪里调用)。就像它所基于的Mac OS X Growl概念一样。
检查jGrowl documentation,我也没有看到任何像这样被调用的例子:
$('.something').jGrowl('message');
// what would this even mean in jGrowl terms?
总是这样:
$.jGrowl('message');
如果它偶尔以这种方式为你工作,这是偶然的偶然事件(我没有看过jGrowl源代码来弄清楚原因,但我确定答案就在那里)。
只需将其称为$.jGrowl('Like This')
即可。