1

我正在寻找将 json 数据加载为 html 的内容,如下面的小提琴所示。

    (function () {
        var flickerAPI = "http://api.flickr.com/services/feeds/photos_public.gne?jsoncallback=?";
        $.getJSON(flickerAPI, {
            tags: "mount rainier",
            tagmode: "any",
            format: "json"
        })
            .done(function (data) {
            $.each(data.items, function (i, item) {
                $("<img>").attr("src", item.media.m).appendTo("#images");
                if (i === 3) {
                    return false;
                }
            });
        });
    })();
        jQuery("#images img").on("click", function (event) {
            console.log('aaa');
        });

我可以让 json 加载,但是我无法获得诸如点击之类的事件来处理已经加载了 json 的数据,我在这里做错了什么?

4

2 回答 2

2

您需要委托您的点击事件。它们被绑定到 DOM 中的项目,然后您正在添加新项目,而事件并未绑定到它们。

尝试用这个替换你的点击活页夹:

jQuery(document).on("click", "#images img", function (event) {
    console.log('aaa');
});

您需要document用最低级别的一致包装器替换,以避免单击时冗余遍历。

于 2013-09-16T23:56:13.750 回答
0

试试这个:

    $("#images").on("click", "img",  function (event) {
        console.log('aaa');
    });

附加事件绑定时,具有 id 的元素images存在,但图像元素不存在。因此,使用该on方法,您可以将img元素作为第二个参数传递,以便img在页面加载后添加的所有元素都正确绑定到此事件处理程序。

于 2013-09-17T00:00:41.010 回答