Передача переменных JQuery по нажатию кнопки

0

Я использую диалоговое окно JQueryUI, чтобы показать ссылку. У меня есть 20 кнопок с 20 различными ссылками. Я не передам эту ссылку, поэтому окно диалога знает, какую ссылку открыть.

Вот код:

$(function () {
    $(document).ready(function () {
        $('#dialog').dialog(
        {
            autoOpen: false,
            modal: true,
            open: function (event, ui) {
                var id = $(this).data('aid'); // It does not work here
                $(this).load("Link?id=" + id);
            },
            hide:
            {
                effect: "explode",
                duration: 500
            }
        });
    });

    $('input[type=submit]').click(function () {
        var id = $(this).data('aid'); // Works here. I wan't to pass this.
        $("#dialog").dialog("open")
    });
});

MVC/Razor:

<input type="submit" value="Show" class="button" data-aid="@Model.item.id" />

Есть ли у кого-нибудь предложения о том, как я могу это сделать?

Большое спасибо.

Теги:
javascript-events

1 ответ

3
Лучший ответ

До открытия диалогового окна, установите свойство данных в #dialog - который INTURN доступен, как this внутри open() обратного вызова:

$("#dialog").data('aid', $(this).data('aid')).dialog("open");

Теперь это должно работать:

...
open: function (event, ui) {
    var id = $(this).data('aid'); // Now it will work here
    $(this).load("Link?id=" + id);
},
...
  • 0
    +1 - это лучшая идея!
  • 0
    @adeneo - Спасибо. :)
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню