Форум программистов, компьютерный форум, киберфорум
JavaScript: API
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
1497 / 1045 / 146
Регистрация: 01.10.2009
Сообщений: 3,510
Записей в блоге: 1
1

Не вызывается метод функции

15.07.2016, 20:29. Показов 1926. Ответов 21
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый вечер. Есть функция и попытка ее вызвать. Пишет что a не определен. Почему так?
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
<script>
        (function a() {
            var chatHub = $.connection.chatHub,
                msgContainer = $('#messages');
 
            chatHub.client.messageReceived = function (user, message) {
                $('#messages').append(user
                            + ':' + message + '</br>');
            };
 
            $.connection.hub.start().done(function () {
 
                $('#send').click(function () {
                                       
                    chatHub.server.send($('#user').val(), $('#message').val());
                    $('#message').val('');
 
                });
            });
        }());
              
 
        $('html').keydown(function (eventObject) {
            if (eventObject.keyCode == 13) {
           a.call
            }
        });
 
</script>
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.07.2016, 20:29
Ответы с готовыми решениями:

Не вызывается метод
Добрый вечер, странно, но в данном куске метод buildNewsletter() не вызывается...проверял с помощью...

Определить объект, из которого вызывается метод
Как с помощью JavaScript определить объект, из которого вызывается метод?

Blender4web какой метод вызывается каждый кадр?
Доброго времени суток! Не могу разобраться с blender4web, кто может пояснить 1й фаил) здесь все...

Как с помощью JQuery вызывается метод в сервлете Java?
Господа, подскажите как с помощью JQuery вызывается метод в сервлете Java? Задача у меня следующая,...

21
Ренегат
Эксперт HTML/CSS
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
15.07.2016, 20:41 2
XIST, конечно не определён...
вот такую запись вот так просто надо сделать
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
(function a() {
            var chatHub = $.connection.chatHub,
                msgContainer = $('#messages');
 
            chatHub.client.messageReceived = function (user, message) {
                $('#messages').append(user
                            + ':' + message + '</br>');
            };
 
            $.connection.hub.start().done(function () {
 
                $('#send').click(function () {
                                       
                    chatHub.server.send($('#user').val(), $('#message').val());
                    $('#message').val('');
 
                });
            });
        }());
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function a() {
            var chatHub = $.connection.chatHub,
                msgContainer = $('#messages');
 
            chatHub.client.messageReceived = function (user, message) {
                $('#messages').append(user
                            + ':' + message + '</br>');
            };
 
            $.connection.hub.start().done(function () {
 
                $('#send').click(function () {
                                       
                    chatHub.server.send($('#user').val(), $('#message').val());
                    $('#message').val('');
                });
            });
        };
        a();
а ещё у call аргументы должны быть какие-то, а то так это просто прочтение свойства в никуда...
0
1497 / 1045 / 146
Регистрация: 01.10.2009
Сообщений: 3,510
Записей в блоге: 1
15.07.2016, 20:58  [ТС] 3
BANO, и так пробовал.
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
<script>
        function a() {
            var chatHub = $.connection.chatHub,
                msgContainer = $('#messages');
 
            chatHub.client.messageReceived = function (user, message) {
                $('#messages').append(user
                            + ':' + message + '</br>');
            };
 
            $.connection.hub.start().done(function () {
 
                $('#send').click(function () {
                                       
                    chatHub.server.send($('#user').val(), $('#message').val());
                    $('#message').val('');
 
                });
            });
        };
        
              
 
        $('html').keydown(function (eventObject) {
            if (eventObject.keyCode == 13) {
           a()
            }
        });
 
</script>
но тут ругается, что что не может получить свойство ChatHub
0
Ренегат
Эксперт HTML/CSS
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
15.07.2016, 21:03 4
XIST, скрин ошибки в студию, то есть на форум
0
1497 / 1045 / 146
Регистрация: 01.10.2009
Сообщений: 3,510
Записей в блоге: 1
15.07.2016, 21:05  [ТС] 5
Вот
Миниатюры
Не вызывается метод функции  
0
Ренегат
Эксперт HTML/CSS
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
15.07.2016, 21:11 6
XIST, значит нету такого свойства connection у jq
это плагин какой?
0
1497 / 1045 / 146
Регистрация: 01.10.2009
Сообщений: 3,510
Записей в блоге: 1
15.07.2016, 21:16  [ТС] 7
BANO, SignalR 2,0. Все работает по клику кнопки, пытаюсь вызвать её при нажатии клавиши. Ну ты и так понял.
0
Ренегат
Эксперт HTML/CSS
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
15.07.2016, 21:24 8
XIST, я понял чо надо
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
        function a() {
            var chatHub = $.connection.chatHub,
                msgContainer = $('#messages');
 
            chatHub.client.messageReceived = function (user, message) {
                $('#messages').append(user
                            + ':' + message + '</br>');
            };
 
            $.connection.hub.start().done(function () {
 
                $('#send').click(function () {
                                       
                    chatHub.server.send($('#user').val(), $('#message').val());
                    $('#message').val('');
 
                });
                $('html').keydown(function (eventObject) {
                    if (eventObject.keyCode == 13) {
                           chatHub.server.send($('#user').val(), $('#message').val());
                            $('#message').val('');
                    }
                });
            });
        };
1
1497 / 1045 / 146
Регистрация: 01.10.2009
Сообщений: 3,510
Записей в блоге: 1
16.07.2016, 07:23  [ТС] 9
BANO, SignalR. Все работает по клику кнопки, пытаюсь вызвать её при нажатии клавишиBANO,
Нет, так не отправляет ни как. Я понял смысл, встроил скрипт нажатия в хаб, но не срабатывает тогда вообще проверка нажатия. Лад, спасибо за попытки
0
1497 / 1045 / 146
Регистрация: 01.10.2009
Сообщений: 3,510
Записей в блоге: 1
18.07.2016, 12:45  [ТС] 10
Господа, есть у кого какие еще мысли? При изменение структуры данного скрипта, перестает работать функция, а в таком варианте пишет что, a не определена
0
886 / 681 / 101
Регистрация: 23.01.2009
Сообщений: 1,582
19.07.2016, 12:17 11
Вариант BANO логически правильный, но в конце надо еще и вызвать эту функцию:

Javascript
1
2
3
4
function a() {
   // ....
}
a();
Если сохраняется ошибка про chatHub, то скорее всего переменная $ переопределена или сброшена на значение по умолчанию во избежание конфликтов. Либо код выполняется раньше, чем загружен плагин.
0
1497 / 1045 / 146
Регистрация: 01.10.2009
Сообщений: 3,510
Записей в блоге: 1
19.07.2016, 12:32  [ТС] 12
ostgals, если убрать
[JS](function a()вот это, то код вообще перестает выполняться.
И не понял, после объявления всей функции a, зачем вызов её?
0
886 / 681 / 101
Регистрация: 23.01.2009
Сообщений: 1,582
19.07.2016, 12:46 13
Цитата Сообщение от XIST Посмотреть сообщение
И не понял, после объявления всей функции a, зачем вызов её?
Хм.. Ну, как бы просто объявленная функция сама по себе ничего не делает - ее надо вызвать, чтобы она что-то сделала.

Javascript
1
2
3
4
5
6
// объявляем функцию
function a() {
   // ....
}
// вызываем ее
a();
Вы же программист, не? Может мы просто не понимаем друг друга? )
0
1497 / 1045 / 146
Регистрация: 01.10.2009
Сообщений: 3,510
Записей в блоге: 1
19.07.2016, 17:49  [ТС] 14
ostgals, если убрать
Javascript
1
[COLOR="Red"]([/COLOR]function a() {
вот это, то код вообще перестает выполняться.
И не понял, после объявления всей функции a, зачем вызов её?
Цитата Сообщение от ostgals Посмотреть сообщение
Вы же программист, не
Цитата Сообщение от ostgals Посмотреть сообщение
Вы же программист, не?
После Ваших слов не уверен)
Javascript
1
2
3
4
5
 $('html').keydown(function (eventObject) {
            if (eventObject.keyCode == 13) {
           a()
            }
        });
Вот в первом еще посте.
Или в js нужно еще после определения обязательный вызов?
0
886 / 681 / 101
Регистрация: 23.01.2009
Сообщений: 1,582
19.07.2016, 20:04 15
Теперь понятно.

Я имел в виду, что будет использован последний вариант кода, предоставленный BANO (тот, где все завернуто в одну функцию).
И к нему дописать вызов a();

P.S. В идеале, конечно, посмотреть на страницу в реале. Это сократило бы процесс диагностики до нескольких минут.
0
1497 / 1045 / 146
Регистрация: 01.10.2009
Сообщений: 3,510
Записей в блоге: 1
19.07.2016, 20:45  [ТС] 16
ostgals,
HTML5
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
@Imports System.Web.Mvc
@Code
    ViewData("Title") = " чат"
    Layout = "~/Views/Shared/_Layout F.vbhtml"
End Code
 
 
<style type="text/css">
    <!--
    body {
        scrollbar-arrow-color: #FF0000;
        scrollbar-face-color: #FF0000;
        scrollbar-highlight-color: #FF8080;
        scrollbar-3dlight-color: #C08000;
        scrollbar-shadow-color: #808080;
        scrollbar-darkshadow-color: #000000;
        scrollbar-track-color: #C08000;
    }
    -->
</style>
 
<div>
    <input type="text" id="message" maxlength="50" />
    <input type="hidden" id="user" value=@User.Identity.Name />
 
    <button type="button" id="send">написАть</button>
</div>
<ul id="messages" style="width:400px; height:330px; overflow:auto; border:solid 2px white;"></ul>
 
<script src="/Scripts/jquery-2.1.4.js"></script>
<script src="/Scripts/jquery.signalR-2.1.0.min.js"></script>
<script src="/signalr/hubs"></script>
<script>
        (function a() {
            var chatHub = $.connection.chatHub,
                msgContainer = $('#messages');
 
            chatHub.client.messageReceived = function (user, message) {
                $('#messages').append(user
                            + ':' + message + '</br>');
                document.getElementById('messages').scrollTop = 9999;
            };
 
            $.connection.hub.start().done(function () {
 
                $('#send').click(function () {
 
                    document.getElementById('messages').scrollTop = 9999;
 
                    chatHub.server.send($('#user').val(), $('#message').val());
                    $('#message').val('');
 
                });               
            });          
        }());
 
 
        $('html').keydown(function (eventObject) {
            if (eventObject.keyCode == 13) {
                a.call
            }
        });
 
</script>
 
 
 
@*события нажатия энтер
 
    $('html').keydown(function(eventObject){
      if (eventObject.keyCode == 13) {
        alert("Ура нажали Enter");
      }
    });
*@
и повторяю, если убрать перед определением (function a() { то функция не работает
0
886 / 681 / 101
Регистрация: 23.01.2009
Сообщений: 1,582
19.07.2016, 20:57 17
Цитата Сообщение от XIST Посмотреть сообщение
повторяю, если убрать перед определением (function a() { то функция не работает
Логично, так как, если убираем открывающую скобку, то убираем и закрывающую - они же парные.

Короче, внутри <script> всё (совсем всё) удалить и поставить:

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
$(function(){
 
    var chatHub = $.connection.chatHub,
        msgContainer = $('#messages');
 
    chatHub.client.messageReceived = function (user, message) {
        $('#messages').append(user
                    + ':' + message + '</br>');
    };
 
    $.connection.hub.start().done(function () {
 
        $('#send').click(function () {               
            chatHub.server.send($('#user').val(), $('#message').val());
            $('#message').val('');
        });
 
        $('html').keydown(function (eventObject) {
            if (eventObject.keyCode == 13) {
                chatHub.server.send($('#user').val(), $('#message').val());
                $('#message').val('');
            }
        });
 
    });
 
});
0
1497 / 1045 / 146
Регистрация: 01.10.2009
Сообщений: 3,510
Записей в блоге: 1
19.07.2016, 21:24  [ТС] 18
Цитата Сообщение от ostgals Посмотреть сообщение
Логично, так как, если убираем открывающую скобку, то убираем и закрывающую - они же парны
блин, ну конечно убирал парную.
А так не отправляет даже по кнопке, а ошибка
Chat:109 Uncaught TypeError: Cannot read property 'chatHub' of undefined
0
886 / 681 / 101
Регистрация: 23.01.2009
Сообщений: 1,582
19.07.2016, 21:46 19
Лучший ответ Сообщение было отмечено XIST как решение

Решение

Цитата Сообщение от XIST Посмотреть сообщение
Chat:109 Uncaught TypeError: Cannot read property 'chatHub' of undefined
Похоже, что у вас второй jquery подключается через шаблон, затирая свойство connection.

Попробуйте заменить обертку:

Javascript
1
$(function(){ ... });
на:

Javascript
1
(function($){ ... })(jQuery);
1
1497 / 1045 / 146
Регистрация: 01.10.2009
Сообщений: 3,510
Записей в блоге: 1
19.07.2016, 21:53  [ТС] 20
друг, спасибо. А где что затирает? Нигде больше подключения в проекте jq нет
0
19.07.2016, 21:53
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.07.2016, 21:53
Помогаю со студенческими работами здесь

Не могу понять почему не вызывается метод? Как вывести метод Plus?
namespace lesson3 { class Program { struct Complex { public double im;...

Не вызывается метод
Здравствуйте! Изучаю язык C++, начал осваивать ООП. Для лучшего понимания решил написать программу,...

Не вызывается метод
Метод public static Zapchasti add(Zapchasti zap) не работает, выдает ошибку. Подскажите пожалуйста...

Почему не вызывается метод?
Есть класс с прорисовкой меню. Так же есть класс с прорисовкой JFrame. В классе с фреймом хочу...

Не вызывается метод класса
Доброго времени суток... пытаюсь сделать функцию сразу говорю: делаю я это первый раз. cpp:...

Вызывается метод из базового класса
Имеется 2 класса: В 1 классе Data имеются такие методы: private string GetUpdateQuerryString()...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru