0

在普通的 JS 函数中:

$('#friendsPop').jGrowl("testtmee");

不会工作,但是:

$.jGrowl("testmeee");

工作得很好..我已经测试了所有东西,如果我在函数之外建立一个链接,一个正常的 a: 链接是这样的:

<a href="javascript:void(0);" onclick="$('#friendsPop').jGrowl('testme');">link</a>

它也很好用。但我想激活

$('#friendsPop').jGrowl("testtmee");

在 ajax 成功调用之后,我需要一个 ID。

我该怎么办?

4

3 回答 3

1

这是我的建议。由于没有办法将 jGrowl 放在 DIV 上,无论是向左还是向右浮动,我们将在渲染后转移它。下面是我从原始示例中获取的代码。

(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 属性与我的 header 的 left 属性对齐。这基本上转移了它的位置,使它看起来好像在标题的 div 下。

于 2012-01-15T14:52:15.933 回答
1

您必须将此添加到您的 ajax 请求中:

var mesScripts = document.getElementById("mapleft").getElementsByTagName("script");
for (var i=0; i<mesScripts.length; i++) {
    eval(mesScripts[i].innerHTML);

它改革了<script>ajax加载后。

于 2010-12-30T00:37:50.980 回答
0

我不时使用过 jGrowl,但我不记得曾经在一组选定的 jQuery 对象上调用它。jGrowl 的全部意义在于它在窗口级别生成“未附加的”消息——一个单一的全局消息流,不管它们是如何被调用的(或从哪里调用的)。就像它所基于的 Mac OS X Growl 概念一样。

检查jGrowl 文档,我也没有看到任何这样调用它的示例:

$('.something').jGrowl('message'); 
// what would this even mean in jGrowl terms?

它总是这样:

$.jGrowl('message');

如果它有时以这种方式为您工作,那是偶然的(我没有查看 jGrowl 源代码来找出原因,但我确信答案就在那里)。

只需调用它就$.jGrowl('Like This')可以了。

于 2010-08-22T01:59:30.987 回答