Форум программистов, компьютерный форум, киберфорум
Наши страницы
JavaScript
Войти
Регистрация
Восстановить пароль
 
iliand
0 / 0 / 4
Регистрация: 30.01.2015
Сообщений: 15
#1

Вызов функции не срабатывает - JavaScript

18.07.2016, 15:42. Просмотров 264. Ответов 11
Метки нет (Все метки)

Есть два файла со скриптами
сначала грузится
1.js
потом 2.js
http://www.cyberforum.ru/javascript/thread1293903.html

И надо из 2.js вызвать функцию которая прописана в 1.js
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
var elem = document.body;
if (elem.addEventListener) {
  if ('onwheel' in document) {
    elem.addEventListener("wheel", onWheel);
  } else if ('onmousewheel' in document) {
    elem.addEventListener("mousewheel", onWheel);
  } else {
    elem.addEventListener("MozMousePixelScroll", onWheel);
  }
} else { 
  elem.attachEvent("onmousewheel", onWheel);
}
 
function onWheel(e) {
  e = e || window.event;
 
  var delta = e.deltaY || e.detail || e.wheelDelta;
 
  next_el = "next";
  prev_el = "prev";
  if (delta > 0)
  {
    return app.scrollTo(next_el);
  }else 
  if (delta < 0)
  {
    return app.scrollTo(prev_el);
  }
  alert('ok');
  
              
  e.preventDefault ? e.preventDefault() : (e.returnValue = false);
}
Функция app.scrollTo не срабатывает я так понимаю что проблема с вызовом функции , где то я что то не указал
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.07.2016, 15:42
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Вызов функции не срабатывает (JavaScript):

Не срабатывает вызов файла JS с чем это связано?
Не срабатывает вызов файла JS с чем это связано? var jslink1 =...

Вызов функции из другой функции после нажатия на кнопку
Помогите, пожалуйста! Никак не могу понять почему не запускается функция d()...

Вызов функции из другой функции в объекте
Добрый день. У меня есть скрипт: var combiner = { getString:...

Вызов функции, находящейся в другой функции
Добрый день! Есть такая функция: function func1(p1, p2) { function...

Вызов функции внутри другой функции
Доброго времени суток! Есть код, которые показывают расстановку шахматных фигур...

11
BANO
Ренегат
Эксперт HTML/CSS
1716 / 1059 / 385
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
18.07.2016, 15:54 #2
iliand, оба скрипта выложите, чтобы понятно было
1
iliand
0 / 0 / 4
Регистрация: 30.01.2015
Сообщений: 15
18.07.2016, 16:02  [ТС] #3
Файл js1
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
var app = {
    scrolled: 0,
    newPosition: 0,
    interval: null,
    speed: 0,
 
    scrollTo: function(el) {
        var link = el.getAttribute('href').replace('#', ''),
            anchor = document.getElementById(link);
 
        var location = 0;
        if (anchor.offsetParent) {
            do {
                location += anchor.offsetTop;
                anchor = anchor.offsetParent;
            } while (anchor);
        }
        location = location >= 0 ? location : 0;
 
        this.animateScroll(location);
        return false;
    },
 
    animateScroll: function(pos) {
        document.documentElement.scrollTop = 1;
        var element = (document.documentElement && document.documentElement.scrollTop) ? document.documentElement : document.body,
            start = element.scrollTop,
            change = pos - start,
            currentTime = 0,
            increment = 20,
            duration = 1500;
 
        var animateScroll = function(){        
            currentTime += increment;
            var val = Math.easeInOutQuad(currentTime, start, change, duration);
            element.scrollTop = val;
            if(currentTime < duration) {
                setTimeout(animateScroll, increment);
            }
        };
        animateScroll();
    }
}; 
 
Math.easeInOutQuad = function (t, b, c, d) {
    t /= d/2;
    if (t < 1) return c/2*t*t + b;
    t--;
    return -c/2 * (t*(t-2) - 1) + b;
};
 
 
    var _scroller;
    _scroller = function () { 
        return{
            speed:5, 
            direct:-1,
            position:0,
            t:null,
            
            init: function () {
                var el;
                
                el = document.getElementById('scroller_container');
                _scroller.addEvent(el, 'mousewheel', _scroller.wheel);
                _scroller.addEvent(el, 'DOMMouseScroll', _scroller.wheel);
 
                _scroller.timer(_scroller.direct); 
            },
 
            
            wheel: function (e) {
                _scroller.stop();
                e = e ? e : window.event;
                
                var wheelData = e.detail ? e.detail * -1 : e.wheelDelta / 40;
 
                
                if (Math.abs(wheelData) > 100) {
                    wheelData = Math.round(wheelData / 100);
                }
               
                _scroller.direct=wheelData>0?1:-1;
                _scroller.timer(_scroller.direct);
                if (window.event) {
                    e.cancelBubble = true;
                    e.returnValue = false;
                    e.cancel = true;
                }
                if (e.stopPropagation && e.preventDefault) {
                    e.stopPropagation();
                    e.preventDefault();
                }
                return false;
            },
 
     
            scroll: function (wheel) {
                var el = document.getElementById('scroller_container').firstElementChild;
                var o, oi, width;
                _scroller.position += wheel;
                if (wheel>0) {
                    if (_scroller.position >= 0) { 
                        
                        o=el;
                        oi=o.lastElementChild;
                        width=oi.firstElementChild.clientWidth; 
                        o.insertBefore(oi,o.firstElementChild);
                        _scroller.position-=width;
                   }
                }
                else {
                    o=el;
                    oi=o.firstElementChild; 
                    width=oi.firstElementChild.clientWidth; 
                    if(_scroller.position < -width){ 
                        
                        o.appendChild(oi);
                        _scroller.position+=width;
                    }
                }
                el.style.left = _scroller.position + 'px';
            },
 
            
            timer: function (wheel) {
                _scroller.stop();
                _scroller.t = setInterval("_scroller.scroll(" + wheel + ");", _scroller.speed);
            },
 
            
            stop: function () {
                if (_scroller.t != null) {
                    clearInterval(_scroller.t);
                    _scroller.t = null;
                }
            },          
            addEvent:function(el, evType, fn, useCapture) {
                if (el.addEventListener) {
                    el.addEventListener(evType, fn, useCapture);
                }else if (el.attachEvent) {
                    var r = el.attachEvent('on' + evType, fn);
                }else el['on' + evType] = fn;
             }
        };
    }();
    
 
    window.onload=function(){
    setTimeout(_scroller.init,100);
    };
0
BANO
Ренегат
Эксперт HTML/CSS
1716 / 1059 / 385
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
18.07.2016, 16:06 #4
iliand, может какие-то ошибки в консоли есть?.
1
iliand
0 / 0 / 4
Регистрация: 30.01.2015
Сообщений: 15
18.07.2016, 16:35  [ТС] #5
scrollH.js:14 Uncaught TypeError: Cannot read property 'offsetParent' of null
0
BANO
Ренегат
Эксперт HTML/CSS
1716 / 1059 / 385
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
18.07.2016, 16:38 #6
iliand, похоже, что всё прозоичнее... вы скрипты в самом конце html подключаете?
1
iliand
0 / 0 / 4
Регистрация: 30.01.2015
Сообщений: 15
18.07.2016, 16:39  [ТС] #7
HTML5
1
2
3
4
 </style>
  <script type="text/javascript" async src="content/js/scroller.js"></script><script type="text/javascript" async src="content/js/scrollH.js"></script> 
  </head>
  <body>
0
BANO
Ренегат
Эксперт HTML/CSS
1716 / 1059 / 385
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
18.07.2016, 16:44 #8
iliand, ещё и асинхронно...
подключайте перед </body> и без атрибутов async
1
iliand
0 / 0 / 4
Регистрация: 30.01.2015
Сообщений: 15
18.07.2016, 16:44  [ТС] #9
Если убрать асинхронную загрузку то пишет что
HTML5
1
scrollH.js:57 Uncaught TypeError: Cannot read property 'addEventListener' of null
0
BANO
Ренегат
Эксперт HTML/CSS
1716 / 1059 / 385
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
18.07.2016, 16:52 #10
iliand, ну ладно, оставьте асинхронную... но не думаю, что она сильно повлияет
1
iliand
0 / 0 / 4
Регистрация: 30.01.2015
Сообщений: 15
18.07.2016, 17:00  [ТС] #11
В общем убрал я асинхронную пишет
HTML5
1
scrollH.js:57 Uncaught TypeError: Cannot read property 'addEventListener' of null
Почитал что такое нашел самое простое решение запихнул все в body он мне начал с того же самого
HTML5
1
scrollH.js:15 Uncaught TypeError: Cannot read property 'offsetParent' of null
Вызываю функцию через
HTML5
1
<a href="#test" onclick="return app.scrollTo(this)"><h1>test</h1></a>
не Работает, добавляю в код
Javascript
1
2
var link = el.getAttribute('href').replace('#', ''),
            anchor = document.getElementById(link);
работает , убираю ссылку , вызываю функцию через js , опять ошибка , думаю что , что то не так c link переменной
HTML5
1
Выводит http://test.loc/#test
Передаю переменную таким методом ошибка
HTML5
1
scrollH.js:11 Uncaught TypeError: el.getAttribute is not a function
0
BANO
Ренегат
Эксперт HTML/CSS
1716 / 1059 / 385
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
18.07.2016, 17:05 #12
iliand, просто она строка

Добавлено через 52 секунды
Цитата Сообщение от iliand Посмотреть сообщение
Javascript
1
2
3
4
5
next_el = "next";
* prev_el = "prev";
* if (delta > 0)
* {
* * return app.scrollTo(next_el);
как бы
1
18.07.2016, 17:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.07.2016, 17:05
Привет! Вот еще темы с решениями:

Вызов функции
function Profile(num) { //... } function Drugaya { //... ...

Вызов функции
Смотрел исходники демо SPA приложения, возник вопрос, почему тут используется...

Вызов функции
Всем привет. Только начал изучать JavaScript, как учебник использую методичку...

Не работает вызов функции
printf(&quot;&lt;input type='button' onclick='podgr(%s, %s);' value='Подгрузить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru