В документации jQuery.fn.on
есть хорошее объяснение.
Короче:
Обработчики событий привязаны только к выбранные в данный момент элементы; они должны существовать на странице, когда ваш код делает вызов
blockquote>.on()
.Таким образом, в следующем примере
#dataTable tbody tr
должен существовать до генерации кода.$("#dataTable tbody tr").on("click", function(event){ console.log($(this).text()); });
Если на страницу вводится новый HTML-код, предпочтительнее использовать делегированные события для присоединения обработчика событий, как описано ниже.
Делегированные события имеют то преимущество, что они могут обрабатывать события от элементов потомков, которые будут добавлены в документ позже. Например, если таблица существует, но строки добавляются динамически с использованием кода, следующее будет обрабатывать ее:
$("#dataTable tbody").on("click", "tr", function(event){ console.log($(this).text()); });
В дополнение к их способности обрабатывать события на дочерних элементах, которые еще не созданы, другим преимуществом делегированных событий является их потенциал для гораздо более низких накладных расходов, когда необходимо контролировать многие элементы. В таблице данных с 1000 строками в
tbody
первый пример кода прикрепляет обработчик к 1000 элементам.Подход с делегированными событиями (второй пример кода) прикрепляет обработчик события только к одному элементу ,
tbody
, и событию нужно только выровнять один уровень (от щелчкаtr
доtbody
).Примечание. Делегированные события не работают для SVG .
Чтобы вставить документ, вам необходимо передать его схему в документе, ссылающемся на документ. Для этого вы можете отдельно хранить схему в переменной как промежуточный шаг, а затем использовать ее для определения модели.
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var ObjectId = Schema.ObjectId;
var CommentSchema = new Schema({
title : String,
body : String,
date : Date
});
var PostSchema = new Schema({
comments : [CommentSchema]
});
module.exports.Comment = mongoose.model('Comment', CommentSchema);
module.exports.Post = mongoose.model('Post', PostSchema);
' + name + '
в array' + path + ^ TypeError: Undefined type
model` в массивеcomments
– totalnoob 15 April 2017 в 20:18