jQuery tips that front-end programmers should know
By using the animate and scrollTop methods in jQuery, you can create a simple animation of scrolling to the top without a plugin:
// Back to top $('.top').click(function (e) { e.preventDefault(); $('html, body').animate({scrollTop: 0}, 800); });
<!-- Create an anchor tag --> <a class="top" href="#">Back to top</a>
Changing the value of scrollTop can change where you want to place the scroll bar. All you really need to do is animate the body of the document for 800 milliseconds until it scrolls to the top of the document.
Note: Be careful about some incorrect behavior of scrollTop.
Preload images
If your webpage is going to use a lot of images that are initially invisible (e.g., on hover), then you can preload these images:
$.preloadImages = function () { for (var i = 0; i < arguments.length; i++) { $('<img alt="jQuery tips that front-end programmers should know" >').attr('src', arguments[i]); } }; $.preloadImages('img/hover-on.png', 'img/hover-off.png');
Check if the images are loading
Sometimes in order to continue the script, you may Need to check if all images are loaded:
$('img').load(function () { console.log('image load successful'); });
You can also check if a specific image is loaded by replacing the tag with an ID or class.
Automatically fix broken images
It is very painful to replace already broken image links one by one. However, the following simple code can help you:
$('img').on('error', function () { if(!$(this).hasClass('broken-image')) { $(this).prop('src', 'img/broken.png').addClass('broken-image'); } });
Even if there are no broken links, adding this code will not cost you anything.
Hover Toggle Class
Suppose you want a clickable element to change color when the user hovers over it. Then you can add the class to the element when the user hovers it, and remove it otherwise:
$('.btn').hover(function () { $(this).addClass('hover'); }, function () { $(this).removeClass('hover'); });
You just need to add the necessary CSS. An easier way is to use the toggleClass method:
$('.btn').hover(function () { $(this).toggleClass('hover'); });
Note: Maybe in this case, the CSS solution is faster, but it is necessary to understand this method.
Disable Input Fields
Sometimes you may want to disable a form's submit button or one of its text inputs until the user performs a specific action (for example, checking the "I have read the terms" checkbox). Add the disabled attribute to your input to enable it when you want:
$('input[type="submit"]').prop('disabled', true);
Then you just need to run the input prop method, but set the value of disabled to false:
$('input[type="submit"]').prop('disabled', false);
Stop loading the link
Sometimes you don't want to link to a specific web page, nor do you want to reload the page - you may want the link to do something else, such as trigger some other script. This requires making a fuss about blocking the default action:
$('a.no-link').click(function (e) { e.preventDefault(); });
Fade in/slide switching
Sliding and fading are both things we use a lot when we use jQuery to animate. If you just want to display an element after the user clicks it, then using the fadeIn and slideDown methods is perfect. However, if you want the element to appear on the first click and then disappear on the second click, then you can try the following code:
// Fade $('.btn').click(function () { $('.element').fadeToggle('slow'); }); // Toggle $('.btn').click(function () { $('.element').slideToggle('slow'); });
简单的手风琴
这是一个可快速生成手风琴的简单方法:
// Close all panels $('#accordion').find('.content').hide(); // Accordion $('#accordion').find('.accordion-header').click(function () { var next = $(this).next(); next.slideToggle('fast'); $('.content').not(next).slideUp('fast'); return false; });
通过添加这个脚本,你真正需要做的仅仅是在页面上添加必要的HTML元素,这样它就可以运行工作了。
让两个div高度相同
有时候,你需要让两个div无论包含什么内容都拥有相同的高度:
$('.div').css('min-height', $('.main-div').height());
设置 min-height,这意味着它可以比主div大但绝对不能比主div小。不过,还有一种更灵活的方法是遍历一组元素,然后将高度设置为最高的那个元素的高度:
var $columns = $('.column'); var height = 0; $columns.each(function () { if ($(this).height() > height) { height = $(this).height(); } }); $columns.height(height);
如果你希望所有列的高度相同:
var $rows = $('.same-height-columns'); $rows.each(function () { $(this).find('.column').height($(this).height()); });
在新标签页/窗口打开外部链接
在一个新的浏览器tab或窗口中打开外部链接,并确保同一个来源的链接能在同一个tab或者窗口中打开:
$('a[href^="http"]').attr('target', '_blank'); $('a[href^="//"]').attr('target', '_blank'); $('a[href^="' + window.location.origin + '"]').attr('target', '_self');
注意:window.location.origin 在IE10中无效。修复的时候要小心这个问题。
在改变Visibility时触发
当用户不再关注某个tab,或重新聚焦原来的那个tab上时,触发JavaScript:
$(document).on('visibilitychange', function (e) { if (e.target.visibilityState === "visible") { console.log('Tab is now in view!'); } else if (e.target.visibilityState === "hidden") { console.log('Tab is now hidden!'); } });
AJAX调用错误处理
当Ajax调用返回404或500错误时,就执行错误处理程序。如果没有定义处理程序,其他的jQuery代码或会就此罢工。定义一个全局的Ajax错误处理程序:
$(document).ajaxError(function (e, xhr, settings, error) { console.log(error); });
链式插件调用
jQuery允许“链式”插件的方法调用,以减轻反复查询DOM并创建多个jQuery对象的过程。比方说,下面的代码片段代表了你的插件方法调用:
$('#elem').show(); $('#elem').html('bla'); $('#elem').otherStuff();
通过使用链式,可以大大改善:
$('#elem') .show() .html('bla') .otherStuff();
还有一种方法是在(前缀$)变量中高速缓存元素:
var $elem = $('#elem'); $elem.hide(); $elem.html('bla'); $elem.otherStuff();
链式和高速缓存的方法都是jQuery中可以让代码变得更短和更快的代最佳做法。
英文原文:jQuery Tips Everyone Should Know

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

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

jQuery is a fast, small, feature-rich JavaScript library widely used in front-end development. Since its release in 2006, jQuery has become one of the tools of choice for many developers, but in practical applications, it also has some advantages and disadvantages. This article will deeply analyze the advantages and disadvantages of jQuery and illustrate it with specific code examples. Advantages: 1. Concise syntax jQuery's syntax design is concise and clear, which can greatly improve the readability and writing efficiency of the code. for example,

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: 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: <

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:

How to tell if a jQuery element has a specific attribute? When using jQuery to operate DOM elements, you often encounter situations where you need to determine whether an element has a specific attribute. In this case, we can easily implement this function with the help of the methods provided by jQuery. The following will introduce two commonly used methods to determine whether a jQuery element has specific attributes, and attach specific code examples. Method 1: Use the attr() method and typeof operator // to determine whether the element has a specific attribute

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
