1

私のjgrowlメッセージでは、「はい」または「いいえ」のどちらかで答えるように求められましたが、どちらもajax呼び出しを実行します。成功すると、通知を閉じたいのですが、どうすればよいですか。タイマー(ライフ)なので、「動かない」と閉じてしまいます

4

1 に答える 1

0

作成している ajax 呼び出しの性質に応じて、呼び出し元のコンテキストを応答ハンドラーに関連付ける方法があれば、それほど難しくありません。

実際、識別子がない場合は、'作成' (つまり、GUID として) し、コールバック関数内で使用できます。

つまり、jQuery AJAX を使用する

var myId=this.id;
$.ajax{
(...),
success:function(){
 alert(myId);//still visible from within this place
},
(...)
}

この識別子を jGrowl パネル (おそらく非表示) に追加すると、それで十分なはずです。

今、私は過去に使用したものの変更されたコードをフィドルに追加しました。念のため、それが消去された場合に備えて、ここにも残します。これはフィドルの URL です: http://jsfiddle.net/MCNUw/12/

html

<html>
<body>
    Open
    <div class="classOpen" source="d1">
        div1
    </div>
    <div class="classOpen" source="d2">
        div2
    </div>
    &nbsp;<br>
    Close
    <div class="classClose" source="d1">
        div1
    </div>
    <div class="classClose" source="d2">
        div2
    </div>

</body>

CSS

.classOpen{color:green;}
.classClose{color:red;}

js

var jGrowlConstraints=
{
    jGrowlNotifSelector:'.jGrowl-notification',
    jGrowlCloseThickSelector:'.jGrowl-close'
}

$(".classOpen").click(
    function(){
        var $domElement=$(this);
        $.jGrowl("<span source='"+$domElement.attr("source")+"'/>"+$domElement.html()
                 ,{ sticky: true });        
    }
);

$(".classClose").click(
    function(){
        var $domElement=$(this);
        $(jGrowlConstraints.jGrowlNotifSelector)
        .has("[source="+$domElement.attr("source")+"]")
        .find(jGrowlConstraints.jGrowlCloseThickSelector)
        .click();
    }
);

あなたの質問をもっと早く見て、あなたを助けてくれたらよかったのに

于 2011-08-15T00:52:59.947 に答える