Как объявить глобальную переменную в .js файле

Вы можете использовать код ниже, чтобы добавить жест касания на UILabel: -

Шаг 1:

 Delegate "UIGestureRecognizerDelegate" to your viewcontroller.h

 for example:
     @interface User_mail_List : UIViewController<UIGestureRecognizerDelegate>

Шаг 2:

//create you UILable
UILabel *title_lbl= [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 100, 30)];
[title_lbl setText:@"u&me"];
[title_lbl setUserInteractionEnabled:YES];
[yourView addSubview:title_lbl];

Шаг 3:

UITapGestureRecognizer *tap= [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(Prof_lbl_Pressed:)];//your action selector
[tap setNumberOfTapsRequired:1];
title_lbl.userInteractionEnabled= YES;
[title_lbl addGestureRecognizer:tap];

Шаг 4:

-(void)Prof_lbl_Pressed:(id)sender{
    //write your code action
}

спасибо,

82
задан Matt 10 July 2014 в 13:40
поделиться

4 ответа

Просто определите свои переменные в global.js вне области действия функции:

// global.js
var global1 = "I'm a global!";
var global2 = "So am I!";

// other js-file
function testGlobal () {
    alert(global1);
}

Чтобы убедиться, что это работает, вы должны включить / связать global.js, прежде чем пытаться получить доступ к любым определенным переменным в этом файле:

<html>
    <head>
        <!-- Include global.js first -->
        <script src="/YOUR_PATH/global.js" type="text/javascript"></script>
        <!-- Now we can reference variables, objects, functions etc. 
             defined in global.js -->
        <script src="/YOUR_PATH/otherJsFile.js" type="text/javascript"></script>
    </head>
    [...]
</html>

Вы, конечно, можете добавить ссылку в тегах скрипта непосредственно перед закрывающим тегом , если вы не хотите, чтобы загрузка js-файлов прерывала загрузку начальной страницы.

90
ответ дан 24 November 2019 в 09:09
поделиться

Рекомендуемый подход:

window.greeting = "Hello World!"

Затем вы можете получить к нему доступ из любой функции:

function foo() {

   alert(greeting); // Hello World!
   alert(window["greeting"]); // Hello World!
   alert(window.greeting); // Hello World! (recommended)

}

Этот подход предпочтителен по двум причинам.

  1. Намерение явно. Использование ключевого слова var может легко привести к объявлению глобальных vars , которые должны были быть локальными, или наоборот. Такой вид области видимости переменных сбивает с толку многих разработчиков Javascript. Поэтому, как правило, я проверяю, что перед всеми объявлениями переменных стоит ключевое слово var или префикс window .

  2. Вы также стандартизируете этот синтаксис для чтения переменных таким образом это означает, что локальная var не затирает глобальную var и наоборот. Например, то, что здесь происходит, неоднозначно:

 greeting = "Aloha";

 function foo() {
     greeting = "Hello"; // overrides global!
 }

 function bar(greeting) {
   alert(greeting);
 }

 foo();
 bar("Howdy"); // does it alert "Hello" or "Howdy" ?

Однако, это намного чище и менее подвержено ошибкам (вам действительно не нужно запоминать все правила области видимости переменных):

 function foo() {
     window.greeting = "Hello";
 }

 function bar(greeting) {
   alert(greeting);
 }

 foo();
 bar("Howdy"); // alerts "Howdy"
85
ответ дан 24 November 2019 в 09:09
поделиться

Вы пробовали?

Если вы делаете:

var HI = 'Hello World';

В global.js . А затем выполните:

alert(HI);

В js1.js он выдаст предупреждение. Вам просто нужно включить global.js до остальных в HTML-документ.

Единственная загвоздка в том, что вы должны объявить его в области видимости окна (а не внутри каких-либо функций).

Вы можете просто исключить часть var и создать их таким образом, но это не очень хорошая практика.

7
ответ дан 24 November 2019 в 09:09
поделиться

Да, вы можете получить к ним доступ. Вы должны объявить их в «публичном пространстве» (вне любых функций) как:

var globalvar1 = 'value';

Вы можете получить к ним доступ позже, также в других файлах.

2
ответ дан 24 November 2019 в 09:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: