Pregunta

Tengo una página con un número de objetos en él, varios de los cuales se pueden eliminar, a petición del usuario. Me gustaría utilizar las herramientas de jQuery sí / no superposición de presentar un "¿Seguro?" tipo de diálogo al usuario para obtener una confirmación antes de realizar la eliminación. He adaptado los jQuery Tools Demo , y haga que sea trabajo, por lo por lo menos hasta el punto en el que no ....

He seguido la demo flowplayer para obtener superposiciones creadas para cada enlace "eliminar esta cosa", y haciendo clic sobre ellos es propiamente cerrando la superposición. Lo que ahora es necesario para el manejo de la clic para comprobar el botón que se ha hecho clic código y, si se hace clic en el botón 'Sí', obtener el href del enlace y redirigir la página a esa ubicación. El problema, como yo lo veo, es que el controlador de clic, que se adjunta a la DIV que contiene los botones Sí y No, no tiene ninguna manera de saber cuál de los enlaces se ha hecho clic para causar su invocación, y por lo tanto no puede obtener el href apropiado. El controlador de clic en la demo flowplayer asume que sólo hay un único lugar de la página donde la superposición puede conseguir invocado. Eso no funciona para mí -. Tengo muchos

Así que: ¿hay alguna manera de conseguir que esto funcione? Tiene que haber algo, pero mi cerebro se agota en este punto. Gracias por la ayuda.


el enlace que contiene el enlace es como sigue:

<li class='yuimenuitem'><a class='yuimenuitemlabel modalInput' rel='#yesno' href='/slate/delete/12345'>delete this item</a></li>

El controlador de clic asignado a la superposición consiste esencialmente sin cambios de lo que hay en la demo flowplayer.

¿Fue útil?

Solución

Se puede utilizar el evento onBeforeLoad de la superposición para establecer una variable con el id del botón que se ha hecho clic.

A continuación, cuando hacen clic en sí o no, el botón puede comprobar esa variable y cargar la URL correcta para el usuario. Esto no se ha probado, pero algo como esto debería funcionar ...

var clicked;
var links = [];//put a hash of button id's and links in here
var triggers = $(".modalInput").overlay({
    mask: {
        color: '#ebecff',
        loadSpeed: 200,
        opacity: 0.9
    },

    onBeforeClick: function(event) {
        var element = e.originalTarget || e.srcElement;
        clicked = element.id
    },

    closeOnClick: false
});
var buttons = $("#yesno button").click(function(e) {
    var yes = buttons.index(this) === 0;
    if(yes) {
        window.location = links[clicked];
    }
});
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top