@reech

Почему срабатывает метод в плагине jQuery при инициализации?

Пишу плагин на jQuery. В настройках плагина есть объект с методом render:

columns: {
            id: {
                render: function (content) {
                    return '<td>' + content.id + '</td>';
                }
            }


При запуске плагина объединяем дефолтные настройки с теми, которые указал пользователь:

settings = $.extend(true, {}, defaults, options);

При этом метод render сразу выполняется и выбрасывает ошибку:
ReferenceError: id is not defined

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

Есть рабочий код на костылях:
render: function (content) {
                    if (typeof content !== 'undefined') if (typeof content.id !== 'undefined') {
                        return '<td>' + content.id + '</td>';
                    }
                }


Так все работает, но думаю есть более грамотный вариант. Что думаете?
  • Вопрос задан
  • 226 просмотров
Решения вопроса 1
@reech Автор вопроса
Ответ с форума javascript.ru

Нужно всего лишь научиться дебажиться. На строке 2 запускается jsGrid плагина, далее он собирается какие-то настройки и запускает метод dom.render, передавая туда контекст и эти самые настройки. На строке 77 запускается какой-то get запрос, и в этот самый $.get вторым параметром попадает объект настроек, среди которых есть функции. Далее мы сходу попадаем сюда и видим комментарий: если значение - функция, то она запускается и её результат возвращается.

wdi8AiI.png

Теперь мы попадаем на строку 26 и вылетаем с ошибкой.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы