Problems with image loading failure in jQuery
This article mainly introduces the summary of jQuery image loading failure methods to replace the default image, and the relevant knowledge used jquery's ready method, $("img").error(), img's complete attribute, plug-in imagesLoaded, and event delegation , event capture and image preloading methods, etc. Friends who need it can refer to it
This article mainly discusses several ways to replace the default image after the image loading fails on the page
The key point is: it must be Remember that error events do not bubble up.
Related knowledge points: jquery's ready method, $("img").error(), img's complete attribute, plug-in imagesLoaded, event delegation, event capture and image preloading methods, etc.
1. If the image fails to load, replace it with the default image
1.1 Bind the error event to the image
When The error event will be triggered when the image fails to load
$("img").on("error", function () { $(this).attr("src", "../img/img.jpg"); });
It is not recommended to use the event attribute onerror, you know~O.o
If it is added dynamically Picture, you need to rebind this event. Event delegation can be used for click events, but event delegation is done using the idea of event bubbling, and error events do not support bubbling
It is not recommended to use it in the ready method. Bind the error event to img. Maybe when img fails to load the image, img does not bind the error event, which will result in the default image not being replaced.
1.2 Use the complete attribute to Judgment
When the image fails to load, the complete attribute value is false, and when the image is loaded successfully, it is true
$("img").each(function () { if (!this.complete || (typeof this.naturalWidth == "undefined" && this.naturalWidth == 0) || !this.src) { $(this).attr("src", "../img/img.jpg"); } });
If it is a dynamically added image, it still needs to be re-judged
You can make a judgment after a while. Otherwise, if you have just added a new image, the image resources may not have been requested yet, so you can use this method to judge whether there will be a problem.
In HTML 5, two new attributes are added to determine the width and height of the image, namely the naturalWidth and naturalHeight attributes (the image must be completely downloaded to the client browser to determine)
Img's onreadystatechange attribute is not discussed, there are browser differences
1.3 Use error event capture to process (global judgment, dynamically added elements Also possible - optimal solution)
document.addEventListener("error", function (e) { var elem = e.target; if (elem.tagName.toLowerCase() == 'img') { elem.src = "../img/img.jpg"; } }, true);
You can monitor dynamically generated img tags
1.4 Use the method provided by the plug-in imagesLoaded to process
imagesLoaded is mainly used to load images in waterfall flow mode on the mobile phone. It can also be used to handle image loading failures and replace them with default images.
// 用的是jQuery的deferred来实现的 $('img').imagesLoaded() .always(function (instance) { // always事件,在所有图片都加载完成(成功与否不论)时触发 console.log('all images loaded'); }) .done(function (instance) { // done事件,在所有图片都加载成功时触发 console.log('all images successfully loaded'); }) .fail(function (instance) { // fail事件,在所有图片都加载完成,并且至少有一张图片加载失败时触发 console.log('all images loaded, at least one is broken'); }) .progress(function (instance, image) { // progress事件,在每一张图片加载完成时都触发一次 var result = image.isLoaded ? 'loaded' : 'broken'; // 判断当前图片加载成功与否 image.img.src = image.isLoaded ? image.img.src : "../img/img.jpg"; console.log('image is ' + result + ' for ' + image.img.src); });
If the image is dynamically added, it still needs to be re-judged
2. Image preloading method
// 实现预加载图片,传入的参数是数组,数组的每一项为该图片的地址 function preloadimages(arr) { var newimages = []; var arr = (typeof arr != "object") ? [arr] : arr; // 确保参数总是数组 for (var i = 0,len = arr.length; i < len; i++) { newimages[i] = new Image(); newimages[i].src = arr[i]; } }
The above is what I compiled for everyone. I hope it will be helpful to everyone in the future.
Related articles:
How to use babel to automatically transcode ES6 to ES5 in Webstorm
How to implement it in Bootstrap4 Vue2 Pagination query
There is an environment configuration for the jquery plug-in in webpack (detailed tutorial)
The above is the detailed content of Problems with image loading failure in jQuery. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

Face detection and recognition technology is already a relatively mature and widely used technology. Currently, the most widely used Internet application language is JS. Implementing face detection and recognition on the Web front-end has advantages and disadvantages compared to back-end face recognition. Advantages include reducing network interaction and real-time recognition, which greatly shortens user waiting time and improves user experience; disadvantages include: being limited by model size, the accuracy is also limited. How to use js to implement face detection on the web? In order to implement face recognition on the Web, you need to be familiar with related programming languages and technologies, such as JavaScript, HTML, CSS, WebRTC, etc. At the same time, you also need to master relevant computer vision and artificial intelligence technologies. It is worth noting that due to the design of the Web side

Detailed explanation of jQuery reference method: Quick start guide jQuery is a popular JavaScript library that is widely used in website development. It simplifies JavaScript programming and provides developers with rich functions and features. This article will introduce jQuery's reference method in detail and provide specific code examples to help readers get started quickly. Introducing jQuery First, we need to introduce the jQuery library into the HTML file. It can be introduced through a CDN link or downloaded

How to use PUT request method in jQuery? In jQuery, the method of sending a PUT request is similar to sending other types of requests, but you need to pay attention to some details and parameter settings. PUT requests are typically used to update resources, such as updating data in a database or updating files on the server. The following is a specific code example using the PUT request method in jQuery. First, make sure you include the jQuery library file, then you can send a PUT request via: $.ajax({u

The relationship between js and vue: 1. JS as the cornerstone of Web development; 2. The rise of Vue.js as a front-end framework; 3. The complementary relationship between JS and Vue; 4. The practical application of JS and Vue.

Title: jQuery Tips: Quickly modify the text of all a tags on the page In web development, we often need to modify and operate elements on the page. When using jQuery, sometimes you need to modify the text content of all a tags in the page at once, which can save time and energy. The following will introduce how to use jQuery to quickly modify the text of all a tags on the page, and give specific code examples. First, we need to introduce the jQuery library file and ensure that the following code is introduced into the page: <

How to remove the height attribute of an element with jQuery? In front-end development, we often encounter the need to manipulate the height attributes of elements. Sometimes, we may need to dynamically change the height of an element, and sometimes we need to remove the height attribute of an element. This article will introduce how to use jQuery to remove the height attribute of an element and provide specific code examples. Before using jQuery to operate the height attribute, we first need to understand the height attribute in CSS. The height attribute is used to set the height of an element

Title: Use jQuery to modify the text content of all a tags. jQuery is a popular JavaScript library that is widely used to handle DOM operations. In web development, we often encounter the need to modify the text content of the link tag (a tag) on the page. This article will explain how to use jQuery to achieve this goal, and provide specific code examples. First, we need to introduce the jQuery library into the page. Add the following code in the HTML file:

jQuery is a popular JavaScript library that is widely used to handle DOM manipulation and event handling in web pages. In jQuery, the eq() method is used to select elements at a specified index position. The specific usage and application scenarios are as follows. In jQuery, the eq() method selects the element at a specified index position. Index positions start counting from 0, i.e. the index of the first element is 0, the index of the second element is 1, and so on. The syntax of the eq() method is as follows: $("s
