2010-08-21 3 views
1

В моем сообщении jgrowl ваш запрос ответил либо «Да», либо «Нет», оба запускают вызов ajax, и при успешном завершении я хочу закрыть уведомление, как я могу это сделать, есть ли линия для закрытия, потому что сейчас все они находятся на таймерах (жизни), поэтому они закрываются, если я не делаю их «закрепленными»jGrowl, как закрыть notifcation?

+0

Это довольно поздно, но в зависимости от характера вызова ajax, который вы делаете, если у вас есть способ связать контекст вызывающего абонента с обработчиком ответа, это было бы не так сложно. –

ответ

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(); 
    } 
); 

желание, которое я видел бы свой вопрос еа rlier, чтобы помочь вам тогда

Смежные вопросы