Javascript.RU

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

td не реагирует на click
Добрый день. Столкнулся с проблемой. Создаю таблицу с помощью js. Таблица создается, заполняю ее картинками. Здесь тоже все работает. После этого все картинки нужно сделать "закрытыми". Для этого через background-image в css каждый td делаю серым квадратом. Это тоже работает. Проблема в следующем: при нажатии на элемент td, у этого самого td нужно убрать класс. Но при нажатии ничего не происходит, click не срабатывает.
Мой js:
var IndexController = function () {

};

IndexController.prototype.createTable = function () {
    $.getJSON("https://kde.link/test/get_field_size.php",
        function(data){
            var get_width = data.width;
            var get_height = data.height;
// здесь какой-то код
// .
// .
// .
            var div = document.getElementsByTagName("div")[4];
            var tbl = document.createElement("table");
            var tblBody = document.createElement("tbody");

            for(var current_row = 1; current_row <= get_height; current_row++){
                var row = document.createElement("tr");
                for(var current_cell = 1; current_cell <= get_width; current_cell++){
                    var cell = document.createElement("td");
                    row.appendChild(cell);
                    $(cell).addClass('image1');
                    cell.innerHTML += "<img src=" + shuffled_mass[tmp] + " class='image2'>";
                    tmp++;
                }
                tblBody.appendChild(row);
            }
            tbl.appendChild(tblBody);
            div.appendChild(tbl);
        });

};

IndexController.prototype.gameplay = function(){
    // Здесь тоже какой-то код
};

IndexController.prototype.init = function () {

    var that = this;

    $('.create-table').on('click', function () {
        that.createTable();
        return false;
    });

    $('td').on('click', function () {
        that.gameplay();
        return false;
    });

};

$(function () {
    var indexController = new IndexController();
    indexController.init();
});


Не могу понять почему не работает обработчик нажатия. Помогите, пожалуйста, кто-нибудь.
Ответить с цитированием
  #2 (permalink)  
Старый 02.12.2015, 16:46
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Сообщение от Dexa
при нажатии на элемент td
обычно причина - нельзя повесить обработку события на то что не существует
обычное решение:
создали элемент/ы - повесили обработку клик.
второй способ
обработку клик ставят на элемент который постоянно есть на странице и в котором появятся нужные элементы.
Ответить с цитированием
  #3 (permalink)  
Старый 02.12.2015, 16:50
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Dexa,
возможно достаточно перенести строки 45-46 в строку 52 ... но тогда как - то непонятно -- кликая постоянно идёт создание таблицы и бесконечно навешиватся клики.
Ответить с цитированием
  #4 (permalink)  
Старый 02.12.2015, 17:46
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Dexa,
лучше поставить клик на tbl в конце строки 30
$(tbl).on('click' , 'td', ...)
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
draggable (запрет click для родителей компонента) khusamov ExtJS 5 13.04.2015 11:45
click событие не реагирует на вновь добавленный элемент vladimircape Events/DOM/Window 2 23.08.2012 00:05
Обработчик click вызывается несколько раз или не всегда вызывается OlegJquery jQuery 2 21.07.2011 20:37
live click выполняется несколько раз hara jQuery 9 09.06.2010 10:58
Как Убрать Click here if you have Flash Player 6 ? rentey Общие вопросы Javascript 3 19.03.2010 17:48