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

verfaa

Профессор
Регистрация
29 Янв 2007
Сообщения
417
Реакции
49
Есть скрипт
Код:
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 + ' - тоже не работает
 
так вы делаете такое
Код:
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);
                });
            });
        }
    }]
   });

как то так
 
Последнее редактирование:
А можно ли как-то решить проблему?
 
подредактировал предыдущий пост, попробуйте, возможно я там криво позакрывал }, ]. исправьте код по ходу
ссылка на доку Для просмотра ссылки Войди или Зарегистрируйся
 
+ если не получится и нужно будет первый вариант использовать- попробуй изменить область видимости, если она глобальная - window.eee
 
+ если не получится и нужно будет первый вариант использовать- попробуй изменить область видимости, если она глобальная - window.eee
var
Объявить переменную (или несколько) в текущей области видимости

Синтаксис
var varname1 [= value1 [, varname2 [, varname3 ... [, varnameN]]]];
она там локальная, проблема там немного в другом
 
Пример выше нормально заработал, спасибо.
Но в моем коде есть ещё 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'); } ?
 
вот так попробуйте
Код:
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'); }
            } ]
        });
из документации
buttonsType: Для просмотра ссылки Войди или Зарегистрируйся or Для просмотра ссылки Войди или Зарегистрируйся
Default: {}
Specifies which buttons should be displayed on the dialog. The context of the callback is the dialog element; if you need access to the button, it is available as the target of the event object.
Multiple types supported:
  • Object: The keys are the button labels and the values are the callbacks for when the associated button is clicked.
  • Array: Each element of the array must be an object defining the attributes, properties, and event handlers to set on the button.
тоесть
buttons: [ { text: 'Кнопка 1', click: function() {alert('йаКнопко1')} }, {text: 'Кнопка 2', click: function() {alert('йаКнопко2')}}, ... ]
 
Назад
Сверху