Форум программистов, компьютерный форум, киберфорум
Наши страницы

JavaScript

Войти
Регистрация
Восстановить пароль
 
iliand
0 / 0 / 0
Регистрация: 30.01.2015
Сообщений: 15
#1

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

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

Есть два файла со скриптами
сначала грузится
1.js
потом 2.js

И надо из 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):

Повторный вызов кода не срабатывает. - JavaScript
Всем Привет. Дело состоит вот в чем. к html подключен main.js где есть функция вида $.get( 'img.php', { fname:fname, one: 1 , one1: 2,...

Не срабатывает вызов файла JS с чем это связано? - JavaScript
Не срабатывает вызов файла JS с чем это связано? var jslink1 = document.createElement(&quot;script&quot;); ...

вызов функции из другой функции после нажатия на кнопку - JavaScript
Помогите, пожалуйста! Никак не могу понять почему не запускается функция d() Полный код: &lt;script language=&quot;javascript&quot;&gt; function...

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

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

Вызов функции из другой функции в объекте - JavaScript
Добрый день. У меня есть скрипт: var combiner = { getString: function(param){ return param; }, run: function(){ ...

11
BANO
Ренегат
Эксперт HTML/CSS
1627 / 1056 / 292
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
18.07.2016, 15:54 #2
iliand, оба скрипта выложите, чтобы понятно было
1
iliand
0 / 0 / 0
Регистрация: 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
1627 / 1056 / 292
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
18.07.2016, 16:06 #4
iliand, может какие-то ошибки в консоли есть?.
1
iliand
0 / 0 / 0
Регистрация: 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
1627 / 1056 / 292
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
18.07.2016, 16:38 #6
iliand, похоже, что всё прозоичнее... вы скрипты в самом конце html подключаете?
1
iliand
0 / 0 / 0
Регистрация: 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
1627 / 1056 / 292
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
18.07.2016, 16:44 #8
iliand, ещё и асинхронно...
подключайте перед </body> и без атрибутов async
1
iliand
0 / 0 / 0
Регистрация: 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
1627 / 1056 / 292
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
18.07.2016, 16:52 #10
iliand, ну ладно, оставьте асинхронную... но не думаю, что она сильно повлияет
1
iliand
0 / 0 / 0
Регистрация: 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
1627 / 1056 / 292
Регистрация: 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
Привет! Вот еще темы с ответами:

Вызов функции - JavaScript
Смотрел исходники демо SPA приложения, возник вопрос, почему тут используется такая конструкция? Зачем это нужно и где об этом можно...

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

Вызов функции - JavaScript
function Profile(num) { //... } function Drugaya { //... HL.setAttribute('onclick','Profile('+st+')'); }

Тормозит вызов функции - JavaScript
Есть функция, меняющая содержание div при определенном событии. Для этого используется метод jQuery - .html. Однако примерно после 10го...


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

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

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