Foros del Web » Programando para Internet » Javascript » Frameworks JS »

.bind & .unbind -> Duda!!!

Estas en el tema de .bind & .unbind -> Duda!!! en el foro de Frameworks JS en Foros del Web. Hola amigos, he estado haciendo una web donde el cliente pide que se confirme la salida de la pagina web o la actualizacion de la ...
  #1 (permalink)  
Antiguo 03/12/2010, 23:56
 
Fecha de Ingreso: mayo-2009
Ubicación: La Habana
Mensajes: 92
Antigüedad: 14 años, 11 meses
Puntos: 0
.bind & .unbind -> Duda!!!

Hola amigos, he estado haciendo una web donde el cliente pide que se confirme la salida de la pagina web o la actualizacion de la misma. esto lo he podido conseguir con esto:

Código:
    $(window).bind('beforeunload', function(e) {
        var e = e || window.event;

        // For IE and Firefox
        if (e) {
          e.returnValue = 'mensaje';
        }

        // For Safari
        return 'mensaje';
     });
con esto hago que la pagina completa ejecute el beforeunload, pero necesito que unos vinculos especificos dentro de la web(el menu) no ejecuten en evento beforeunload quedando algo asi como:

Código:
    $('#bach_ulmenu a').unbind('beforeunload');
con esto supuestamente ejecutaria el metodo beforeunload a toda la pagina menos a $('#bach_ulmenu a'), pero por gusto, siempre ejecuta la funcion para todo ...alguien sabe como puedo hacer esto???


Desde ya muchas gracias por leer mi duda!!!


saludos, kceres
  #2 (permalink)  
Antiguo 04/12/2010, 09:46
 
Fecha de Ingreso: mayo-2009
Ubicación: La Habana
Mensajes: 92
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: .bind & .unbind -> Duda!!!

Bueno, despues de una buena noche de suenno me llego una idea y bueno, queria compartirla porque funciono, talvez no se la mas elegante, pero por lo menos funciona ...aqui va!!!

Código:
$(document).ready(function(){
    createEvent();
});

function createEvent(){
    $('#bach_ulmenu *').click(function(){
        $(window).unbind('beforeunload');
        
        var link = $(this).attr('href');
        $(document).stop();

       /**
        * AQUÍ REALIZO TODAS LAS COSAS QUE NECESITO HACER
        * Y DESPUÉS LE DIGO QUE VAYA HACIA DONDE SE DIRIGÍA 
        *
        **/

        windowsBeforUnLoad();
        document.location = link;
        return false;
    });
    
    windowsBeforUnLoad();
}

function windowsBeforUnLoad(){
    $(window).bind('beforeunload', function(e) {
        var e = e || window.event;
        
        // For IE and Firefox
        if (e) {
          e.returnValue = 'texto';
        }

        // For Safari
        return 'texto';
     });
}

si alguien tiene una mejor solución seria bueno que la planteara, pero por el momento me quedo con esta que por lo menos funciona jejejeje

saludos, kceres

Etiquetas: bind
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:06.