繁体   English   中英

替换jQuery自动完成中的损坏图像

[英]Replacing broken images in Jquery Auto-complete

我正在使用以下使用Jquery自动完成功能的自动完成功能插件。 它可以很好地工作,并且完全满足我的需要,但是我的问题是我的JSON文件包含成千上万种带有说明和图像的产品。 许多图像出现故障,无法正常工作。

有谁知道如何用普通的本地图像替换那些损坏的图像链接? 我无法手动进入JSON文件并替换这些图像,因为这需要花费数周的时间。

我看着这个但没有帮助:“ http://stackoverflow.com/questions/92720/jquery-javascript-to-replace-broken-images”

很感谢任何形式的帮助。

这里的FoxyComplete的JS和完整的脚本的链接(很抱歉没能的jsfiddle工作- http://www.bcreatives.com.au/wp-content/uploads/dev/foxycomplete-local/ ):

(function($) {
$(document).ready(function() {

    $( '#s' ).each( function(){
    $(this).attr( 'title', $(this).val() )
      .focus( function(){
        if ( $(this).val() == $(this).attr('title') ) {
          $(this).val( '' );
        }
      } ).blur( function(){
        if ( $(this).val() == '' || $(this).val() == ' ' ) {
          $(this).val( $(this).attr('title') );
        }
      } );
    } );

    $('input#s').result(function(event, data, formatted) {
        $('#result').html( !data ? "No match!" : "Selected: " + formatted);
    }).blur(function(){     
    });

    $(function() {      
    function format(mail) {
        return "<a href='"+mail.permalink+"'><img src='" + mail.image + "' /><span class='title'>" + mail.title +"</span></a>";         
    }

    function link(mail) {
        return mail.permalink
    }

    function title(mail) {
        return mail.title
    }

    $("#s").autocomplete(completeResults, {
        width: $("#s").outerWidth()-2,          
        max: 5,         
        scroll: false,
        dataType: "json",
        matchContains: "word",
        parse: function(data) {
            return $.map(data, function(row) {
                return {
                    data: row,
                    value: row.title,
                    result: $("#s").val()
                }
            });
        },
        formatItem: function(item) {                
            return format(item);
        }
        }).result(function(e, item) {
            $("#s").val(title(item));
            //location.href = link(item);
        });                     
    });

});
})(jQuery);

我相信您所链接SO问题的可接受答案应该可以。 只需将format函数替换为以下内容:

function format(mail) {
    return "<a href='"+mail.permalink+"'>" +
        "<img src='" + mail.image + "' onerror='this.src=\'/img/error.jpg\'' />" +
        "<span class='title'>" + mail.title +"</span></a>";         
}

并确保您有一个名为/img/error.jpg的图像,即natch。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM