Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
3 / 3 / 11
Регистрация: 17.01.2013
Сообщений: 354

Не выполняется событие

26.04.2016, 10:17. Показов 1346. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!

Код:
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
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>Тест</title>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
 
$(document).ready(function() {
    
    $(".checkbox").on("change", function(){
        alert('hello');
    });
    
    $("input[type=button]").on("click", function(){
        $.ajax({
            type: "POST",
            url: "script1.php",
            success: function(response) {
                $("#data").html(response);
            },
        });
    });
});
 
</script>
</head>
<body>
<input type="button" value="checkbox" />
<div id="data"></div>
</body>
</html>
script1.php
PHP
1
2
3
4
5
<?php
 
echo '<input type="checkbox" class="checkbox" />';
 
?>
При установке чекбокса не выводится hello, но если поправить скрипт так:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$(document).ready(function() {
 
    $("input[type=button]").on("click", function(){
        $.ajax({
            type: "POST",
            url: "script1.php",
            success: function(response) {
                $("#data").html(response);
                $(".checkbox").on("change", function(){
                    alert('hello');
                });
            },
        });
    });
});
то работает.

Почему первый вариант неправильный ?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.04.2016, 10:17
Ответы с готовыми решениями:

Событие click выполняется дважды
Переключатель сделанный на чекбоксе странно работает, при одном клике событие обрабатывается дважды. Вот пример:...

Как обработать событие click и событие нажития стрелки?
Допустим есть кнопка влево-вправо для горизонтального листания товаров. Как нужно кроссбраузерно обрабатывать одновременно событие click...

Не выполняется событие
Всем доброго времени суток, ситуация такая: динамически добавляю на форму лейблы и кнопку к ним, на кнопку надо прицепить серверный...

10
 Аватар для AmateR62
118 / 118 / 87
Регистрация: 24.02.2014
Сообщений: 404
26.04.2016, 13:33
Цитата Сообщение от berkut_174 Посмотреть сообщение
Почему первый вариант неправильный ?
Потому что на момент загрузки страницы его не существует
0
3 / 3 / 11
Регистрация: 17.01.2013
Сообщений: 354
26.04.2016, 13:40  [ТС]
Цитата Сообщение от AmateR62 Посмотреть сообщение
Потому что на момент загрузки страницы его не существует
Какой выход тогда ?

Писать отдельно функцию, например:
JavaScript
1
2
3
function test(){
    alert('hello');
}
а вызывать так:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
$(document).ready(function() {
    
    $("input[type=button]").on("click", function(){
        $.ajax({
            type: "POST",
            url: "script1.php",
            success: function(response) {
                $("#data").html(response);
                $(".checkbox").change(test);
            },
        });
    });
});
?
0
 Аватар для AmateR62
118 / 118 / 87
Регистрация: 24.02.2014
Сообщений: 404
26.04.2016, 13:45
Лучший ответ Сообщение было отмечено berkut_174 как решение

Решение

Цитата Сообщение от berkut_174 Посмотреть сообщение
Какой выход тогда ?
Читать про делегированную обработку событий jQuery
В вашем случае будет как то так:

JavaScript
1
2
3
$('#data').on('change', '.checkbox', function(){
  alert('hello');
});
0
3 / 3 / 11
Регистрация: 17.01.2013
Сообщений: 354
03.05.2016, 21:16  [ТС]
А если мне скрипт возвращает кнопку и для неё нужно выполнить button(), как тогда ?
Если делаю так:
JavaScript
1
$('#data').on('change', '.checkbox').button();
То весь #data становится кнопкой.
0
 Аватар для AmateR62
118 / 118 / 87
Регистрация: 24.02.2014
Сообщений: 404
03.05.2016, 21:18
Что такое у вас button() ? Функция?

JavaScript
1
2
3
$('#data').on('change', '.checkbox', function(){
  button();
});
0
3 / 3 / 11
Регистрация: 17.01.2013
Сообщений: 354
03.05.2016, 21:45  [ТС]
Цитата Сообщение от AmateR62 Посмотреть сообщение
Что такое у вас button() ? Функция?
Это виджет https://api.jqueryui.com/button/.
0
 Аватар для AmateR62
118 / 118 / 87
Регистрация: 24.02.2014
Сообщений: 404
03.05.2016, 21:58
Тогда так и делать, после того, как скрипт возвращает кнопку, инициализируете виджет:

JavaScript
1
2
3
$( ".checkbox" ).button({
  // тут опции
});
0
3 / 3 / 11
Регистрация: 17.01.2013
Сообщений: 354
03.05.2016, 22:01  [ТС]
Цитата Сообщение от AmateR62 Посмотреть сообщение
Тогда так и делать, после того, как скрипт возвращает кнопку, инициализируете виджет:
То есть как-то "делегировано" не получится ? У меня сейчас так и сделано.
0
 Аватар для AmateR62
118 / 118 / 87
Регистрация: 24.02.2014
Сообщений: 404
03.05.2016, 22:28
Делегировано... вы немного понятия путаете, либо изначально я вас неправильно понял

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$(document).ready(function() {
    $("input[type=button]").on("click", function(){
        $.ajax({
            type: "POST",
            url: "script1.php",
            success: function(response) {
                $("#data").html(response);
                $( ".checkbox" ).button({
                  // тут опции
                });
            },
        });
    });
});
А вот если вы хотите отловить событие, то придется использовать делегированную обработку:

JavaScript
1
2
3
$('#data').on('change', '.checkbox', function(){
  // тут что будет делать обработчик изменения состояния
});
0
3 / 3 / 11
Регистрация: 17.01.2013
Сообщений: 354
03.05.2016, 22:40  [ТС]
Я понял.
Просто в одном месте один раз прописать проще:
JavaScript
1
$( ".checkbox" ).button();
Чем после каждого ajax это переписывать. Вот я о чём.
У меня в двух ajax эти кнопки генерятся, вот и думал их один раз прописать и всё.
Но похоже так нельзя...
Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.05.2016, 22:40
Помогаю со студенческими работами здесь

Не выполняется событие построения
Хочу использовать PVS-Studio, для бесплатной лицензии нужно в начале файлы писать определенный текст. Для этого разработчики PVS предлагают...

Почему не выполняется событие document_Open()
Почему не выполняется событие document_Open() для ThisDocument? для Word2000 подскажите

Не выполняется событие нажатия кнопки на форме
На какое событие запихунуть, что бы KeyEvent нормально работал? Вот код примерный код. if (e.KeyCode == Keys.Z) ...

Не выполняется событие после изменения размеров формы
Создаю на форме динамический Label Label text = new Label(); ... this.Controls.Add(text); И...

Где и как выполняется подписка на событие в конструкторе класса
где и как выполняется подписка на событие в конструкторе класса, например, на KeyUp, MouseMove и т. п. И как конкретно организовать такое...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Номеклатура. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru