Как отправить переменную javascript для последующей функции jquery или набора скобок? - PullRequest
0 голосов
/ 10 мая 2010

Как отправить переменную javascript в следующую функцию jquery? Вот мой код.

    <script type="text/javascript">
$(function() {
    var name = $("#name"),
        email = $("#email"),
        password = $("#password"),
        itemid = $("#itemid"),
        tips = $(".validateTips");

    function updateTips(t) {
        tips
            .text(t)
            .addClass('ui-state-highlight');
        setTimeout(function() {
            tips.removeClass('ui-state-highlight', 1500);
        }, 500);
    }

    $("#dialog-form").dialog({

        autoOpen: false,
        height: 320,
        width: 350,
        modal: true,
    /*
        buttons: {
            'Change category': function() {
            alert("The itemid2 is "+itemid2);

                var bValid = true;
                $('#users tbody').append('<tr>' +
                '<td>' + name.val() + '</td>' + 
                '<td>' + email.val() + '</td>' + 
                '<td>' + password.val() + '</td>' +
                '<td>' + itemid.val() + '</td>' +
                '</tr>'); 

                $(this).dialog('close');

            },
            Cancel: function() {
                $(this).dialog('close');
            }
        },
        */
        close: function() {
            allFields.val('').removeClass('ui-state-error');
        }
     });



    $('.changecategory')
        .button()
        .click(function() {
              var categoryid = $(this).attr("categoryid");
              var itemid = $(this).attr("itemid");
              var itemid2 = $(this).attr("itemid");
              var itemtitle = $(this).attr("itemtitle");
              var parenttag = $(this).parent().get(0).tagName;
              var removediv = "itemid_" +itemid;
         alert("The itemid is "+itemid);

            $('#dialog-form').dialog('open');




        });

});
</script>

Я сломаю это.

  1. Раздел .changecategory появляется ПЕРВЫМ при нажатии на изображение на моей странице.
  2. $ ("# dialog-form"). Dialog (затем вызывается {, и идентификатор элемента переменной не передается этой функции. Как я могу передать переменную из одной функции в другую? Это возможно.

Есть ли способ передать переменную в другую функцию jquery, не прибегая к установке cookie с помощью javascript, а затем с помощью jquery для его чтения?

Ответы [ 3 ]

1 голос
/ 10 мая 2010

Ваш dialog('open') вызов не сможет увидеть ни одну из ваших itemid переменных, которые вы определили, потому что они находятся в совершенно другом закрытии.

Если вы скажете нам, какой диалоговый плагин вы используете, мы могли бы вам немного помочь. Если это виджет JQuery UI Dialog, то я предлагаю вам сделать это:

$('.changecategory')
    .button()
    .click(function() {
        var scope = $(this); // for the sake of code speed
        var categoryid = scope.attr("categoryid");
        var itemid = scope.attr("itemid");
        var itemid2 = scope.attr("itemid");
        var itemtitle = scope.attr("itemtitle");
        var parenttag = scope.parent().get(0).tagName;
        var removediv = "itemid_" +itemid;
        alert("The itemid is "+itemid);
        $('#dialog-form').dialog('option', 'itemId', itemId); // store the id
        $('#dialog-form').dialog('open');
    });

Поэтому, прежде чем открывать диалоговое окно, вы можете установить внутреннюю опцию некоторого диалога, которая будет доступна при закрытии функции открытия в качестве опции диалога.

Другой ( не рекомендуемый способ) будет использовать подход @ Tgr с глобальными переменными.

0 голосов
/ 10 мая 2010

Вы можете моделировать глобальные переменные, используя свойства объекта window: window.itemid = $('#itemid'); (На самом деле переменные, которые не определены в области действия , являются свойствами window.)

Вы также можете присваивать значения объектам DOM с помощью функции data() jQuery: $('#dialog-form').data('itemid', itemid); в обработчике кликов, затем var itemid = $('#dialog-form').data('itemid'); в диалоговом окне.

0 голосов
/ 10 мая 2010

Вложите все $("#dialog-form").dialog({ в событие клика $('.changecategory')

После этого вы сможете ссылаться на itemid внутри диалога.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...