У меня есть сайт с бесконечными страницами и динамически загружаемым контентом.
В настоящее время я использую jQuery tipy plugin и должен называть его любой функцией, которая динамически добавляет контент на сайт (чтобы получить всплывающие подсказки для этого нового контента). В настоящее время я изменяю свои привязки к ons, что поможет достичь этого, если щелкнуть и другие события.
Мой текущий код, который повторяется много:
$("[data-tooltip]").tipsy({settings here});
Можно ли использовать jQuery ON и привязать его к телу, и если контент добавляется в тело, контент (если он имеет атрибут [подсказка] - будет автоматически запускать подвыпимую функцию?
Например:
$("body").on("something","[data-tooltip]", function (e) {
$("[data-tooltip]").tipsy({settings here});
});
благодаря
Вам было бы намного лучше, если бы на самом деле просто tipsy
после каждой новой загрузки контента, как вы могли бы знать:
$.ajax({
..
success: function( newHtml ) {
$('#container').append( newHtml );
$('#container .tipsy').tipsy({
/** Your settings **/
});
}
});
Чтобы достичь того, о чем вы просите; вам придется применить какой-то "слушатель". Ждать новых вставленных элементов DOM. В нем необработанная базовая форма:
function listenForNewToolTips() {
$('.someclass[data-tooltip]:not([data-hastipsy])').tipsy({
/** Apply data-hastipsy='true' **/
});
//Look again in 1000 milliseconds.
setTimeout( listenForNewToolTips, 1000 );
}
Который выше, довольно недостаточен, поскольку это будет постоянный цикл. on
прислушивается ко многим событиям, хотя удивительно там не так много событий, которые прислушиваются к каждому изменению элемента DOM:
setTimeout()