jQuery Tools диалог да / нет: как иметь более одного на страницу? - PullRequest
0 голосов
/ 08 декабря 2010

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

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

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


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

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

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

1 Ответ

1 голос
/ 08 декабря 2010

Вы можете использовать событие 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];
    }
});
...