Question

J'ai une page avec un certain nombre d'objets sur demande de l'utilisateur il, dont plusieurs peuvent être supprimés. Je voudrais utiliser les outils de jQuery oui / non overlay de présenter un « Êtes-vous sûr? » de type de dialogue à l'utilisateur pour obtenir confirmation avant de faire la suppression. J'ai adapté les jQuery Outils démo , et faites-le travailler, à moins jusqu'au point où il ne ....

J'ai suivi la démo flowplayer pour obtenir des superpositions créées pour chaque lien « supprimer cette chose », et en cliquant sur eux APPORTE correctement la superposition. Ce que je maintenant besoin est pour le code de gestion du clic pour vérifier le bouton qui a été cliqué et, si le bouton «oui a été cliqué, obtenir le href du lien et rediriger la page à cet endroit. Le problème, comme je le vois, est que le gestionnaire de clic, qui est attaché à la DIV contenant le oui et pas de boutons, ne dispose d'aucun moyen de dire quel des liens a été cliqué pour provoquer son appel, et il ne peut pas obtenir le href approprié. Le gestionnaire de clic dans la démo de flowplayer suppose qu'il n'y a qu'un seul endroit sur la page où la superposition peut s'invoqué. Cela ne fonctionne pas pour moi -. J'ai beaucoup

: est-il possible d'obtenir ce travail? Il doit y avoir quelque chose, mais mon cerveau est épuisé à ce point. Merci pour l'aide.


le lien contenant le lien est comme ceci:

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

Le gestionnaire de clic attribué à la superposition est essentiellement inchangé par rapport à ce qui est dans la démo de flowplayer.

Était-ce utile?

La solution

Vous pouvez utiliser l'événement onBeforeLoad de la superposition pour définir une variable avec l'identifiant du bouton qui a été cliqué.

Alors, quand ils cliquent oui ou non, le bouton peut vérifier cette variable et charger l'URL correcte pour l'utilisateur. Ce n'est pas testé, mais quelque chose comme ça devrait fonctionner ...

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];
    }
});
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top