Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 追加数据后公文包不工作_Jquery_Html - Fatal编程技术网

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;
    });