Диалоговое окно «Инструменты jQuery» да/нет:как иметь более одного на странице?

StackOverflow https://stackoverflow.com/questions/4383189

Вопрос

У меня есть страница с несколькими объектами, некоторые из которых можно удалить по запросу пользователя.Я хотел бы использовать инструменты jQuery Да/нет наложения, чтобы представить "ты уверен?" Введите диалог пользователю, чтобы получить подтверждение перед удалением.я адаптировал Демонстрация инструментов jQuery, и заставить его работать, по крайней мере, до того момента, пока он не перестанет работать....

Я следил за демонстрацией flowplayer, чтобы создать наложения для каждой ссылки «удалить эту вещь», и нажатие на них правильно вызывает наложение.Теперь мне нужно, чтобы код, обрабатывающий щелчок, проверял нажатую кнопку и, если была нажата кнопка «да», получал href из ссылки и перенаправлял страницу в это место.Проблема, на мой взгляд, заключается в том, что обработчик кликов, прикрепленный к DIV, содержащему кнопки «да» и «нет», не имеет никакого способа определить, какая из ссылок была нажата, чтобы вызвать ее вызов, и поэтому он не могу получить соответствующий href.Обработчик кликов в демо-версии FlowPlayer предполагает, что на странице есть только одно место, где можно вызвать наложение.Меня это не устраивает — у меня их много.

Так:есть ли способ заставить это работать?Что-то должно быть, но мой мозг на данный момент истощен.Спасибо за помощь.


ссылка, содержащая ссылку, выглядит следующим образом:

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

Обработчик кликов, назначенный наложению, по существу не отличается от того, что было в демо-версии FlowPlayer.

Это было полезно?

Решение

Вы можете использовать событие onBeforeLoad наложения, чтобы установить переменную с идентификатором нажатой кнопки.

Затем, когда они нажимают «Да» или «Нет», кнопка может проверить эту переменную и загрузить правильный URL-адрес для пользователя.Это непроверено, но что-то вроде этого должно работать...

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];
    }
});
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top