运行 带有 JSON 文件的函数 onclick

Running a function onclick with a JSON file

因此,当我单击图像时,我尝试使用 运行 函数。它适用于普通图像,但我从 reddit JSON 文件中获取图像。我需要单独调整图像的大小,但我不知道如何调整。这可能很简单,但我对编码还是个新手,所以任何帮助都会很棒。

$.getJSON("http://www.reddit.com/r/pcmasterrace/.json?jsonp=?", function (data) {
$.each(data.data.children, function (i, item) {
    IsValidImageUrl(item.data.url, function (url, isvalid) {
        if (isvalid) {
            $('<img/>').attr('src', item.data.url)
                .appendTo('#images')
                .width(500)
                .onclick = function() {Resize()};
            }
        });
    });
});

功能对吗?

function Resize() {
if (document.getElementById('<img/>').style.width === "500px") {
    document.getElementById('<img/>').style.width = "1000px";
} else {
    document.getElementById('<img/>').style.width = "500px";
    }
}

我认为 ('<img/>') 可能是错误的。我用 ('test') 测试了它并且它有效,所以我需要它是不同的东西吗?它与我的测试功能一起工作,所以 .click 工作所以我认为它试图改变错误的东西。

onclick 是 属性 个 DOM 个元素,而不是 jQuery 个对象。您应该使用 click() 函数来添加点击处理程序。

.getJSON("http://www.reddit.com/r/pcmasterrace/.json?jsonp=?", function (data) {
    $.each(data.data.children, function (i, item) {
        IsValidImageUrl(item.data.url, function (url, isvalid) {
            if (isvalid) {
                $('<img/>').attr('src', item.data.url)
                    .appendTo('#images')
                    .width(500)
                    .click(function() {Resize(this)});
            }
        });
    });
});

您的 Resize 函数应该接受一个参数来告诉它要更改哪个图像:

function Resize(image) {
    if (image.style.width == "500px") {
        image.style.width = "1000px";
    } else {
        image.style.width = "500px";
    }
}