Диалоговое окно «Инструменты jQuery» да/нет:как иметь более одного на странице?
-
10-10-2019 - |
Вопрос
У меня есть страница с несколькими объектами, некоторые из которых можно удалить по запросу пользователя.Я хотел бы использовать инструменты 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];
}
});