【问题标题】:Input field to change img attributes for multiple images用于更改多个图像的 img 属性的输入字段
【发布时间】:2014-08-26 01:40:40
【问题描述】:

问题:无法单独更改多个图像的属性 src 和 alt。所做的任何更改都会影响之前进行过更改的所有其他图像。

问题:如何优化以下 JS/Jquery 以允许更改多个图像的属性?

在此处查看完整代码:JS Fiddle

$(function () {
    $("#editImage").hide();
    $("img").click(function () {
        var imgChange = this;
        $('#imageAlt').val($(imgChange).attr('alt'));
         $('#imageSrc').val($(imgChange).attr('src'));
        $("#editImage").css({
            top: $(this).offset().top - $('#editImage').height() - 5,
            left: $(this).offset().left
        }).show();
        $("#imageEditDone").click(function () {
            var imgSrc = $("#imageSrc").val();
            var imgAlt = $("#imageAlt").val();
            $(imgChange).attr('src', imgSrc).attr('alt', imgAlt);
        });           
    });
});
$("#imageEditDone").click(function () {
    $("#editImage").hide();
});

【问题讨论】:

    标签: javascript jquery attr


    【解决方案1】:

    您在另一个单击处理程序中重复绑定一个单击处理程序,这是一个禁忌。此外,您需要更改 imgChange 变量的范围。试试:

    var imgChange;
    $(function () {
        $("#editImage").hide();
        $("img").click(function () {
            imgChange = this;
            $('#imageAlt').val($(imgChange).attr('alt'));
            $('#imageSrc').val($(imgChange).attr('src'));
            $("#editImage").css({
                top: $(this).offset().top - $('#editImage').height() - 5,
                left: $(this).offset().left
            }).show();
            $("#imageSrc").text(imgChange.attr('alt', this));
        });
    });
    $("#imageEditDone").click(function () {
        $("#editImage").hide();
        var imgSrc = $("#imageSrc").val();
        var imgAlt = $("#imageAlt").val();
        $(imgChange).attr('src', imgSrc).attr('alt', imgAlt);
    });
    

    jsFiddle example

    我只是不确定您要对$("#imageSrc").text(imgChange.attr('alt', this)); 行做什么,尽管它不会影响答案。

    【讨论】:

    • 啊,那是一条废线,我应该删除的。谢谢你的帮助。已投赞成票并将在两分钟内标记为正确答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-24
    • 2015-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-10
    相关资源
    最近更新 更多