Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.08.2018, 17:22
Новичок на форуме
Отправить личное сообщение для Noobster Посмотреть профиль Найти все сообщения от Noobster
 
Регистрация: 20.08.2018
Сообщений: 2

Почему не определяет функцию
Имеются 2 страницы, где на одной надо автоматический грузить функцию, а на другой при клике на кнопку.
(function($) {
    "use strict";

    // Here IF/Else

    // Click btn.
    $(".getInfoByClick").click(function() {
      // Call function
      getInfoByClick();
    });

    // getInfoByClick
    var getInfoByClick = (function(){
      alert("Need call this function")
    }());

})(jQuery);

На какой странице как грузить, определяю отдельно (Here IF/Else).

Проблема с вызовом функции через клик кнопку.
Uncaught TypeError: getInfoByClick is not a function

Как вариант сделал так, на сколько правильно и в чём отличие между пред. кодом:
(function($) {
    "use strict";

    // Here IF/Else

    // Click btn.
    $(".getInfoByClick").click(function() {
      // Call function
      getInfoByClick();
    });

    // getInfoByClick
    function getInfoByClick(){
      alert("Need call this function")
    };

})(jQuery);


Спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 20.08.2018, 17:41
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

У вас на 15 строке сразу и вызывается функция, так что getInfoByClick равно undefined

var getInfoByClick = function() {
    alert("Need call this function")
};
Ответить с цитированием
  #3 (permalink)  
Старый 20.08.2018, 17:50
Новичок на форуме
Отправить личное сообщение для Noobster Посмотреть профиль Найти все сообщения от Noobster
 
Регистрация: 20.08.2018
Сообщений: 2

Но даже если на 15 строке undefined, функция ведь уже подгрузилась в страницу, т.е. при клике ведь она должна вызывается?
И что делать? Как я второй вариант писал так?

Грубо если сравнить мои прим. кода отличие я верно понимаю:
"var getInfoByClick = (function(){}())" - функцию обворачиваю в переменную.

"function getInfoByClick(){}" - просто определяю функцию
Ответить с цитированием
  #4 (permalink)  
Старый 20.08.2018, 18:02
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

Сообщение от Noobster
"var getInfoByClick = (function(){}())" - функцию обворачиваю в переменную.
присвиваивает переменной getInfoByClick результат работы анонимной функции(появление алерта), функция у вас ничего не возвращает, значит
getInfoByClick = undefined

Последний раз редактировалось рони, 20.08.2018 в 18:04.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выполнить функцию заранее неизвестную Neokortex jQuery 2 13.02.2012 12:41
Свойства объекта, методы и this. Почему свойство вызывается с () ? jsuse Общие вопросы Javascript 2 04.11.2011 20:39
checkbox включен запускаем одну функцию выключен другую Sadist_dead Элементы интерфейса 11 27.09.2011 10:46
проблема с передачей параметров в функцию bartonom Элементы интерфейса 4 19.09.2011 12:41
Как получить указатель на элемент вызвавший функцию pelayo Общие вопросы Javascript 9 29.06.2010 23:32