Jump to content

RemoveClass não funciona


Gonçalo_ssb
 Share

Recommended Posts

Boa tarde,

Estou a ter um pequeno problema, imaginem o seguinte

Eu tenho esta imagem em HTML

echo "<img src='resources/images/icons/destaq.png' title= '".DESTAQ_UNASSIGN."' id='".$encript->encrypt($rs['media_id'])."' class='unassign_destaq' alt='' />"; 

e o Javascript


$(".assign_destaq").click(function(){
        
        //MENSAGEM DE CONFIRMAÇÃO
        if(confirm("Pretende atribuir esta Notícia como destaque?")){
            
            var img_unassign_obj = $(this); //Imagem antiga
            
            var media_id = $(this).attr("id"); //identificador da imagem antiga
            
            var img_unassign_dir = $(this).attr("src"); //directoria da imagem antiga
            
		$.post("inc/actions_scripts.php",{
                exec           : "update",
                module         : "news_assign_destaq",
                media_id       : media_id    
            },
            function(msg){
              
              if($.trim(msg)==1){ //Sucesso
                
                //Mudam as Imagens  
                img_unassign_obj.attr("src",img_unassign_dir.replace("destaq_off.png","destaq.png")); 
                img_unassign_obj.attr("title","Remover Destaque");
                img_unassign_obj.removeClass("assign_destaq");    
              }
		  else{
			alert("Erro Inesperado: "+$.trim(msg));
		  }
            });
            
        }
        
        return false;
    });

Com isto o que deveria acontecer, era que em caso de sucesso a classe deveria ser removida da imagem e com isto não deveria ser possível realizar numa próxima vez o $(".assign_destaq").click(function(){ para esta imagem, contudo é possível fazer.

Alguma pista para o sucedido?

Obrigado.

gferraria.

Link to comment
Share on other sites

Olá,

E se experimentares ter um atributo para verificação da condição, por exemplo: ignore?

Passo a exemplificar:

$(".assign_destaq").click(function(){
       
// Aqui testas se o atributo foi inicializado
if($(this).attr("ignore"))
     return;

        //MENSAGEM DE CONFIRMAÇÃO
        if(confirm("Pretende atribuir esta Notícia como destaque?")){
           
            var img_unassign_obj = $(this); //Imagem antiga
           
            var media_id = $(this).attr("id"); //identificador da imagem antiga
           
            var img_unassign_dir = $(this).attr("src"); //directoria da imagem antiga
           
                        $.post("inc/actions_scripts.php",{
                exec           : "update",
                module         : "news_assign_destaq",
                media_id       : media_id    
            },
            function(msg){
             
              if($.trim(msg)==1){ //Sucesso
               
                //Mudam as Imagens  
                img_unassign_obj.attr("src",img_unassign_dir.replace("destaq_off.png","destaq.png"));
                img_unassign_obj.attr("title","Remover Destaque");
                img_unassign_obj.removeClass("assign_destaq");    

// Aqui marcas o atributo para não ser executado novamente 
$(this).attr("ignore", 'true');
              }
                          else{
                                alert("Erro Inesperado: "+$.trim(msg));
                          }
            });
           
        }
       
        return false;
    });

Experimenta assim (não testei o código). Percebeste a ideia?

Pedro Martins

Sharing is Knowledge!

http://www.linkedin.com/in/rechousa

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.