Не подставляется значение переменной

Тема в разделе "JavaScript", создана пользователем verfaa, 8 мар 2014.

Модераторы: ZiX
  1. verfaa

    verfaa

    Регистр.:
    29 янв 2007
    Сообщения:
    374
    Симпатии:
    41
    Есть скрипт
    Код:
    var eee = gl_move;
        $.get('/ix.php', { action: 'moveContactsDialog' }, function(data){
    
            alert('1'+eee);
            container.html(actionsTPL(data.folders));
    
            container.dialog({
                position: [20, 200 ],
                close: function() {
                    $('.contactChecker').removeAttr('checked');
                },
                buttons: {
                     eee : function(){
                        var folder = $('#contactsActions select').val();
                        var users = [];
                        $('.contactChecker:checked').each(function(){
                            users.push($(this).val());
                        });
                        $.get('/ix.php', { action: 'moveContacts', folder: folder, users: users }, function(){
                            container.dialog('close');
                            $.get('/ds.php', { folder_id: folder_id }, function(data){
                                $('#contactsList').html(data);
                            });
                        });
                    }
                }
    
            });
        }, 'json');
    
    На 1-й линии в переменную eee заносим значение пер-нной gl_move
    На 4-й линии выводим эту переменную алертом, выводится нормально.
    На 13-й линии пытаемся подставить эту переменную, как значение кнопки - не работает выводит просто eee
    Почему? Пробовал также ' + eee + ' - тоже не работает
     
    Шумадан нравится это.
  2. Шумадан

    Шумадан Хабарра!!11

    Регистр.:
    6 фев 2008
    Сообщения:
    1.728
    Симпатии:
    2.105
    так вы делаете такое
    Код:
    eee : function(){
    тоесть в button.eee это уже прототип функции, а не переменная

    это JQuery UI?
    попробуйте по примеру
    Код:
    $( ".selector" ).dialog({ buttons: [ { text: "Ok", click: function() { $( this ).dialog( "close" ); } } ] });
    тоесть
    Код:
    container.dialog({
        position: [20, 200 ],
        close: function() {
            $('.contactChecker').removeAttr('checked');
        },
        buttons:[ { text: eee, click:
                 function(){
                var folder = $('#contactsActions select').val();
                var users = [];
                $('.contactChecker:checked').each(function(){
                    users.push($(this).val());
                });
                $.get('/ix.php', { action: 'moveContacts', folder: folder, users: users }, function(){
                    container.dialog('close');
                    $.get('/ds.php', { folder_id: folder_id }, function(data){
                        $('#contactsList').html(data);
                    });
                });
            }
        }]
       });
    как то так
     
    Последнее редактирование: 8 мар 2014
    verfaa нравится это.
  3. verfaa

    verfaa

    Регистр.:
    29 янв 2007
    Сообщения:
    374
    Симпатии:
    41
    А можно ли как-то решить проблему?
     
    Шумадан нравится это.
  4. Шумадан

    Шумадан Хабарра!!11

    Регистр.:
    6 фев 2008
    Сообщения:
    1.728
    Симпатии:
    2.105
    подредактировал предыдущий пост, попробуйте, возможно я там криво позакрывал }, ]. исправьте код по ходу
    ссылка на доку Перейти по ссылке
     
    verfaa нравится это.
  5. KillDead

    KillDead

    Регистр.:
    11 авг 2006
    Сообщения:
    884
    Симпатии:
    540
    + если не получится и нужно будет первый вариант использовать- попробуй изменить область видимости, если она глобальная - window.eee
     
    Шумадан нравится это.
  6. Шумадан

    Шумадан Хабарра!!11

    Регистр.:
    6 фев 2008
    Сообщения:
    1.728
    Симпатии:
    2.105
    она там локальная, проблема там немного в другом
     
    verfaa нравится это.
  7. verfaa

    verfaa

    Регистр.:
    29 янв 2007
    Сообщения:
    374
    Симпатии:
    41
    Пример выше нормально заработал, спасибо.
    Но в моем коде есть ещё 1 участок, с вложенными кнопками:
    Код:
     
    container.html(delete_folder_message).dialog(
            {
                modal: true,
                buttons : {
                    gl_yes : function() {
                        $.get('/ix.php', { action: 'removeFolder', id: link.attr('rel') }, function(){
                            $('.folder-'+link.attr('rel')).remove();
    
                            container.dialog('close');
                            window.location = '/dialogs/';
                        });
                    },
                    gl_no : function() { container.dialog('close'); }
                }
            });
    
    По аналогии с предыдущим примером переделал так:
    Код:
        container.html(delete_folder_message).dialog(
            {
                modal: true,
                buttons: [ { text: gl_yes, click:
                    function() {
                        $.get('/ix.php', { action: 'removeFolder', id: link.attr('rel') }, function(){
                            $('.folder-'+link.attr('rel')).remove();
    
                            container.dialog('close');
                            window.location = '/ds/';
                        });
                    },
                    gl_no : function() { container.dialog('close'); }
                } ]
            });
    кнопка gl_yes нормально заработала. А как быть с gl_no : function() { container.dialog('close'); } ?
     
    Шумадан нравится это.
  8. Шумадан

    Шумадан Хабарра!!11

    Регистр.:
    6 фев 2008
    Сообщения:
    1.728
    Симпатии:
    2.105
    вот так попробуйте
    Код:
    container.html(delete_folder_message).dialog(
            {
                modal: true,
                buttons: [ { text: gl_yes, click:
                    function() {
                        $.get('/ix.php', { action: 'removeFolder', id: link.attr('rel') }, function(){
                            $('.folder-'+link.attr('rel')).remove();
    
                            container.dialog('close');
                            window.location = '/dialogs/';
                        });
                    }
                },
                    {gl_no : function() { container.dialog('close'); }
                } ]
            });
    из документации
    тоесть
    buttons: [ { text: 'Кнопка 1', click: function() {alert('йаКнопко1')} }, {text: 'Кнопка 2', click: function() {alert('йаКнопко2')}}, ... ]
     
    verfaa нравится это.