2010-08-21 56 views
1

在我的jgrowl消息中,您要求回答是或否,都运行ajax调用,并且如果成功,我希望关闭通知,我该怎么做,是否有一条线要关闭,因为现在他们都是定时器(生命),所以他们关闭自己,如果我不让他们“坚持”jGrowl如何关闭通知?

+0

它已经很晚了,但是根据你所做的ajax调用的性质,如果你有任何方法将调用者上下文与响应处理程序关联起来,那就不是那么难。 – 2011-08-15 00:43:26

回答

0

根据您所做的ajax调用的性质,如果您有任何方式来将调用者上下文与响应处理程序相关联,这不会很难做到。

事实上,如果您没有标识符,您可以“创建它”(即作为GUID)并在回调函数中使用它。使用jQuery AJAX

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

如果添加此标识的jGrowl面板(隐藏也许)

即应足够多这样的伎俩。

现在,我在一个小提琴中加入了我以前使用过的东西的修改代码,以防万一它被擦除,我也将它留在这里。这是小提琴网址: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(); 
    } 
); 

希望我能看到你的问题的EA rlier来帮助你然后