Установка переменной по клику и передача ее в другую функцию - PullRequest
1 голос
/ 09 ноября 2011

Я получаю переменную id элемента div следующим образом:

var value = $(this).attr('id').replace("-", "");

Мой HTML выглядит так:

<li id="item-1">1</li> 
<li id="item-2">2</li> 
<li id="item-3">3</li> 

Итак, я получаю item1, item2 и item3 соответственно.

Теперь, когда я нажимаю на кнопку и устанавливаю значение для идентификатора, открывается диалоговое окно. Внутри диалога есть вход и кнопка «ОК». Когда нажата okay, я хочу получить эту переменную снова.

Так, как я могу передать переменную ИЛИ как я могу сообщить диалоговое окно, что я говорю для этого идентификатора.

Вот пример:

    $("#bxs li").click(function() {
            var value = $(this).attr('id').replace("-", "");

                $( "#dialog" ).dialog( "open" );
                return false;

        });


    // Okay button from the dialog.


        $(".okaybtn").click(function() {

// value is the variable from the previous function
                localStorage.setItem( value , "test");  
                    $( "#dialog" ).dialog( "close" );return false;

            });

Ответы [ 5 ]

1 голос
/ 09 ноября 2011

jQuery data:

$("#bxs li").click(function () {
    var value = $(this).attr('id').replace("-", "");

    $("#dialog").data("clickedfrom", value ).dialog("open");
    return false;

});


// Okay button from the dialog.

$(".okaybtn").click(function () {
    var $dialog = $("#dialog");
    // value is the variable from the previous function
    localStorage.setItem( $dialog.data( "clickedfrom" ), "test");
    $dialog.dialog("close");
    return false;

});

Переменная области действия:

(function(){
var value;
    $("#bxs li").click(function () {
        value = $(this).attr('id').replace("-", "");

        $("#dialog").dialog("open");
        return false;

    });


    // Okay button from the dialog.

    $(".okaybtn").click(function () {
        // value is the variable from the previous function
        localStorage.setItem( value, "test");
        $("#dialog").dialog("close");
        return false;

    });
})()
0 голосов
/ 09 ноября 2011

Для обработки ввода формы в диалоговом окне пользовательского интерфейса jQuery вы можете использовать опцию buttons.

$( "#dialog" ).dialog({
 buttons: {
   "Ok": function() {
          value = $('#dialoginputfield').val();
          $(this).dialog("close");
         }
   }
});
0 голосов
/ 09 ноября 2011

1.Вы можете сохранить ее как глобальную переменную - не рекомендуется
2.Вы можете сохранить выбранное значение переменной в скрытом вводе
3.Вы можете отправить значение идентификатора в качестве аргумента функции диалога.

0 голосов
/ 09 ноября 2011

Я не совсем уверен, что вы ищете, но это должно сработать, если вы объявите value вне двух функций, поскольку это даст переменной глобальную область, доступную для обеих функций.

    var value;
    $("#bxs li").click(function() {
            value = $(this).attr('id').replace("-", "");

                $( "#dialog" ).dialog( "open" );
                return false;

        });


    // Okay button from the dialog.


        $(".okaybtn").click(function() {

// value is the variable from the previous function
                localStorage.setItem( value , "test");  
                    $( "#dialog" ).dialog( "close" );return false;

            });
0 голосов
/ 09 ноября 2011

Объявите значение вне области действия обработчика щелчка, чтобы вы могли получить к нему доступ из других блоков кода.

var value;
$("#bxs li").click(function() {
     value = $(this).attr('id').replace("-", "");

     $( "#dialog" ).dialog( "open" );
     return false;
});

$(".okaybtn").click(function() {
     // value is the variable from the previous function
     localStorage.setItem( value , "test");
     $( "#dialog" ).dialog( "close" );
     return false;    
 });
...