Jquery 追加数据后公文包不工作
我正在制作一个自定义的基本Jquery 追加数据后公文包不工作,jquery,html,Jquery,Html,我正在制作一个自定义的基本HTML模板。Its有一个与JQuery一起工作的公文包。我想动态添加公文包图像。因此,我所做的是,我从XML文件中获取数据,然后将这些数据附加到HTML页面。很好用。但是,现在,Portfolio不起作用。有什么建议吗 此处附加代码 $(data).find('imageGroup').each(function () { var imageGroup = $(this); if (imageGroup.length) { var m
HTML模板
。Its有一个与JQuery
一起工作的公文包。我想动态添加公文包图像
。因此,我所做的是,我从XML
文件中获取数据,然后将这些数据附加到HTML
页面。很好用。但是,现在,Portfolio
不起作用。有什么建议吗
此处附加代码
$(data).find('imageGroup').each(function () {
var imageGroup = $(this);
if (imageGroup.length) {
var m = '<ul class="portfolio-items col-4">\n';
imageGroup.find('image').each(function () {
m += '<li class="portfolio-item ' + $(this).attr('group') + '">\n';
m += '<div class="item-inner">\n';
m += '<div class="portfolio-image">\n';
m += '<img src="' + $(this).attr('thumb') + '" alt="">\n';
m += '<div class="overlay">\n';
m += '<a class="preview btn btn-danger" title="' + $(this).attr('info') + '" href="' + $(this).attr('full') + '"><i class="icon-eye-open"></i></a>\n';
m += '</div>\n';
m += '</div>\n';
m += '<h5>' + $(this).attr('des') + '</h5>\n';
m += '</div>\n';
m += '</li><!--/.portfolio-item-->\n';
});
m += '</ul>\n';
}
$('.box').append(m);
});
此外,我可以为您提供我在这里错过的任何代码。它将帮助你解决这个问题。我不明白我要做什么。如果有人能指出我的话。这将是我的荣幸
谢谢你,飞越者
当我在developer.js公文包中使用alert时,效果很好。如果没有,它就不起作用了。如何解决此问题。您需要使用事件委派将事件附加到动态添加的元素:
$('.box').on('click','.portfolio-filter >li>a', function(){
$portfolio_selectors.removeClass('active');
$(this).addClass('active');
var selector = $(this).attr('data-filter');
$portfolio.isotope({ filter: selector });
return false;
});
在附加数据后,您还需要附加同位素插件。您能做一把小提琴吗?@yeshansachithak:是的,您需要确保在将事件附加到它们或使用事件委派时DOM已准备就绪。事件委派在很多插件中都不起作用,所以你需要在附加内容后附加插件。我遇到了一个问题。我改变顺序。然后向该开发人员脚本文件添加一个警报框。当我使用alert时。一切正常。如果我从文件中删除警报。它不起作用了。为什么?~_~@yeshansachithak:这是因为DOM没有使用append完全加载。放置警报使其有足够的时间稍后执行。如果您在没有警报的情况下通过控制台调试代码,这甚至会起作用。我在没有使用警报的情况下使用了condole.log(“loaded”)
。但是,没有像我使用alert那样工作。你能告诉我该怎么办吗?我已经使用了$(document).ready()
。如何实现DOM
是否已完全加载?请按照我提到的方式使用委托。
$('.box').on('click','.portfolio-filter >li>a', function(){
$portfolio_selectors.removeClass('active');
$(this).addClass('active');
var selector = $(this).attr('data-filter');
$portfolio.isotope({ filter: selector });
return false;
});