0

通常のJS関数内:

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

動作しませんが:

$.jGrowl("testmeee");

正常に動作します。すべてをテストしました。関数の外部にリンクを作成すると、通常のa:リンクは次のようになります。

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

それもうまくいきます。しかし、私はアクティブにしたい

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

ajaxのsuccesscallの後、IDが必要です。

これについて何ができますか?

4

3 に答える 3

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 に答える
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 オブジェクトの右のプロパティをヘッダーの左のプロパティに揃えます。これは基本的にその場所を転送して、ヘッダーの div の下にあるかのように見せます。

于 2012-01-15T14:52:15.933 に答える
0

私は時々jGrowlを使用しましたが、選択したjQueryオブジェクトのセットでjGrowlを呼び出したことはありません。jGrowlの要点は、ウィンドウレベルで「添付されていない」メッセージを生成することです。つまり、メッセージがどのように(またはどこから)呼び出されたかに関係なく、メッセージの単一のグローバルストリームです。それが基づいているMacOSXXrowlの概念と同じように。

jGrowlのドキュメントを確認すると、次のように呼ばれる例もありません。

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

それはいつもこのようです:

$.jGrowl('message');

それが時々このように機能している場合、それは偶然の出来事です(理由を理解するためにjGrowlソースコードを見ていませんが、答えはそこにあると確信しています)。

それを呼び出すだけで$.jGrowl('Like This')、すべて設定されます。

于 2010-08-22T01:59:30.987 に答える