kukaew
@kukaew

Как поменять переменную внутри функции?

Привет. Я очень глупый в JS, мне нужно простыми словами объяснять.

Вот у меня переменная:

function ftog() {
var vtog = 'вкл.';
return vtog;
};

И вот здесь мне нужно поменять vtog , чтоб на кнопку вывести "выкл", а не "вкл":

$(document).ready(function(){
$("#tog").toggle(
function () {
vtog = 'выкл.'; });
},
...

Но не работает нифига. Это обязательно должно быть в toggle, там на него куча всего навешано, вот нужно ещё, чтоб и ftog на кнопке менялся. Спасибо, добрый человек.
  • Вопрос задан
  • 256 просмотров
Решения вопроса 2
DevMan
@DevMan
меняйте текст на кнопке, а не переменную. ну или делайте переменную глобальной.
Ответ написан
AlexXYZ
@AlexXYZ
O Keep Clear O
Здравствуйте.
Объявленная внутри функции переменная недоступна изве. Звёзды, т.е. область видимости не позволяет. Как вы собираетесь использовать vtog?

Если хочется извратиться, то можно так:

function ftog() {
var vtog = 'вкл.';
return {vtog:vtog};
};

var obj = ftog();
$(document).ready(function(){
$("#tog").toggle( 
function () {	
obj.vtog = 'выкл.'; }); 
});
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Petroveg
@Petroveg
Миром правят маленькие с#@&ки
Такие вещи делают примерно так

Не привыкайте к говнокоду — текст обязан формироваться сервером. Не нужно писать текстовые значения элементов в скрипте (за редким исключением вроде календаря). Тем более, вы полностью лишаетесь возможности кастомизации кнопок. Работайте через data-атрибуты.

Скрипт же меняет формальные параметры (атрибуты, включая классы), а текст берёт из хранилища, однозначно связанным с элементом. Никакого самостоятельного текста (кроме случаев, когда содержание скрипта формируется сервером непосредственно в теле страницы), никаких правил CSS.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы