2014-12-26 5 views
0

У меня есть следующий код, но я не могу получить доступ к «myVariable» из сценария. Я предполагаю, что это функция, а «myVariable» должна быть глобальной переменной. Как создать глобальную переменную?Доступ к переменной, которая находится за пределами скрипта

(Примечание: это .cshtml файл в проекте ASP.NET MVC в Visual Studio)

<!DOCTYPE html> 
<html> 
<head> 
</head> 
<body> 

    @{var myVariable = "this is what I want to access and change later in the script";} 

<div class="navbar navbar-inverse navbar-fixed-top"> 
    <div class="container"> 
     <div class="navbar-header"> 
    ... 
     </div> 
    </div> 
</div> 

<script> 
    $('[name="optradio1"]').on('change', function() { 
     $('#accordion-second').slideToggle(); 
     $('#accordion-first').slideToggle(); 
     alert(myVariable); 
    }) 
</script> 
</body> 
</html> 

ответ

1

Вы можете использовать данные-атрибуты:

<script id="myScript" data-myvar="@myVariable"> 
    $('[name="optradio1"]').on('change', function() { 
     $('#accordion-second').slideToggle(); 
     $('#accordion-first').slideToggle(); 
     alert($('#myScript').data('myvar')); 
    }); 
</script> 

Обычно надеть теги содержимого HTML, поскольку у вас обычно есть какой-то уникальный идентификатор уже или класс, но вы можете это сделать и в тегах скриптов.

+0

Спасибо @TimVermaelen! Есть ли способ использовать атрибуты данных для установки одной переменной, равной другой? Например, если бы был включен параметр 'data-myvar2 = @ myVariable2', можно ли установить один из них внутри скрипта? Потому что мне нравится использовать атрибуты данных, поскольку они кажутся похожими на передачу в переменных, но я не уверен, как установить один равный другому. '$ ('# myScript'). Data ('myvar') = $ ('# myScript'). Data ('myvar2');' не работает ... – NateHill

+0

Не обращайте внимания на второй вопрос @TimVermaelen - - Я смог понять это с помощью документации API jquery. Следующие работали: '$ ('# myScript'). Data ('myvar', $ ('# myScript'). Data ('myvar2'));' Еще раз спасибо за вашу помощь! – NateHill

1

Пожалуйста, измените который, как alert(myVariable);

вместо использования, что, пожалуйста, используйте код ниже.

 var val = parseInt('@myVariable') + 5; 
     alert(val); 

Попробуйте этот.

+0

, если я хочу добавить некоторое значение с помощью @myVariable, то как я могу это достичь? Например myVariable = myVariable + 5 – Golda

+0

Просто используйте обновленный код – Aravindan

+0

Если он используется полностью, просто отметьте ответ как правильный, щелкнув стрелку вверх по стрелке 0, которая находится в левой части моего кода, например меню. – Aravindan

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