2013-04-25 2 views
1

У меня есть набор языковых файлов PHP, которые я использую для вывода текста пользователю на основе их выбора языка. Я успешно передал переменные PHP в javascript, и они доступны как LANG. Вы можете видеть его в использовании в коде.Имя параметра переменной jquery

Вот мой вопрос ... Так как код, как показано ниже работает отлично, почему я не могу изменить эту строку ...

'No': { 'class' : ''}} 

в

LANG.no: { 'class' : ''}} 

В основном я хочу знать почему я могу использовать LANG в другом месте кода, но не в строке, указанной выше, или в эквивалентной строке «Да».

Вот рабочий код:

$.confirm({ 
    'title': LANG.return_to_exhibit_lobby, 
'message': "<strong>"+LANG.return_to_exhibit_lobby_confirmation+"</strong>", 
'buttons': { 
'Yes': { 
    'class': 'special', 
    'action': function(){ 
     window.location.href='logout.php'; 
    }}, 
'No': { 'class' : ''}} 
}); 
+0

Почему? Потому что код подтверждения ожидает «Нет»? и это должно выглядеть так: Lang: {no: {class ...}} ' – epascarello

+0

@epascarello Я не думаю, что это правда, потому что я могу изменить его на нечто абсурдное, как' 'банан''. Я просто не могу, кроме имени переменной ... Только строка. Это может быть что угодно ... не обязательно должно быть «Нет» –

+0

@epascarello Я пробовал код, как вы предлагали, и он выводил «LANG» вместо «Нет» –

ответ

4

Что вы можете сделать вместо этого:

var params = { 
    'title': LANG.return_to_exhibit_lobby, 
    'message': "<strong>"+LANG.return_to_exhibit_lobby_confirmation+"</strong>", 
    'buttons': { 
     'Yes': { 
      'class': 'special', 
      'action': function(){ 
       window.location.href='logout.php'; 
      }} 
}; 

params.buttons[LANG.No] = { 'class' : ''}; 

$.confirm(params); 
+0

Он сделал трюк ... Спасибо! –

4

Это потому, что вы находитесь в литерал объекта. Синтаксические правила там разные, потому что вы объявляете структуру, а не действуете на нее. Вы можете сделать это:

var data = { 
    'title': LANG.return_to_exhibit_lobby, 
    'message': "<strong>"+LANG.return_to_exhibit_lobby_confirmation+"</strong>", 
    'buttons': {} 
}; 
data.buttons[Lang.No] = { 'class' : ''} 
$.confirm(data); 
+0

Это какой-то умный код, у него есть надпись. – BNL

+0

@BNL Ну, извините за это, выложили в то же время ... –

+0

Нет проблем ..... – BNL

Смежные вопросы