你应该知道的jQuery的小技巧

本文为翻译文章,原文在jquery-tips-everyone-should-know

回到顶部的按钮

通过使用jQuery中的animate 与 scrollTop 方法可以创建一个非常简易的带有平滑滚动的回到顶部的按钮:

// Back to top
$(‘a.top‘).click(function (e) {
  e.preventDefault();
  $(document.body).animate({scrollTop: 0}, 800);
});<!-- Create an anchor tag --><a class="top" href="#">Back to top</a>

通过修改 scrollTop的值可以设置滚动最终停止的位置,最终的效果就是在800毫秒的时间内文档会被滚动到指定的地方。

图片预加载

如果网页中使用了大量的图片并且不一定需要立刻可见,可以把它们放入预加载队列:

$.preloadImages = function () {  for (var i = 0; i < arguments.length; i++) {
    $(‘img‘).attr(‘src‘, arguments[i]);
  }
};

$.preloadImages(‘img/hover-on.png‘, ‘img/hover-off.png‘);

检查图片是否加载完成

有时候需要检查某个图片是否加载完成从而继续下面的操作:

$(‘img‘).load(function () {  console.log(‘image load successful‘);
});

同样的,可以使用ID或者类选择器来判断某个特定的图片是否加载完成。

Fix Broken Images Automatically

在页面上如果发生某些图片加载失败是一个非常常见并且恶心的事情,如下的一小段代码可以在某种程度上解决这个问题:

$(‘img‘).on(‘error‘, function () {
  $(this).prop(‘src‘, ‘img/broken.png‘);
});

即使没有发现任何的坏链的情况,也是建议将这段代码添加到页面中。

Toggle Classes on Hover

很多时候需要的响应是在用户悬浮在某个元素上时改变其的可见性或者状态,换言之,即是在用户将鼠标悬浮在某个元素上时修改其的类属性,而在用户停止悬浮时移除该类:

$(‘.btn‘).hover(function () {
  $(this).addClass(‘hover‘);
  }, function () {
    $(this).removeClass(‘hover‘);
  });

当然,更简单的就是利用 toggleClass 方法:

$(‘.btn‘).hover(function () {
  $(this).toggleClass(‘hover‘);
});

Note: CSS的hover伪类可能是更方便的做法,不过知晓这种用法也是值得的。

禁用输入框

很多情况下我们希望提交按钮能够在部分文本框未填入的情况下处于禁用状态直到用户执行了某个动作,此时我们就需要为这个按钮添加disabled属性:

$(‘input[type="submit"]‘).prop(‘disabled‘, true);

如果需要回复输入框的状态,那么就要再次使用 prop方法, 不过将 disabled 的值设置为false:

$(‘input[type="submit"]‘).prop(‘disabled‘, false);

阻止链接的加载

有时候你不希望用户在点击了某个链接之后跳转到新的页面或者重载当前页面:

$(‘a.no-link‘).click(function (e) {
  e.preventDefault();
});

触发渐隐/滑动

滑动与渐隐是jQuery种最常见的动画之一,很多时候我们希望能在用户点击某个元素之后将其渐隐渐出或者滑动出现:

// 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;
});

将两个DIV设置为统一高度

有时候希望无论两个DIV种包含怎样的内容都能保持统一高度:

$(‘.div‘).css(‘min-height‘, $(‘.main-div‘).height());

也可以使用如下更灵活一点的方法:

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());
});

在新的窗口打开外部链接

有时候需要控制在本页面打开同源链接,在新的页面种打开外部链接:

$(‘a[href^="http"]‘).attr(‘target‘,‘_blank‘);
$(‘a[href^="//"]‘).attr(‘target‘,‘_blank‘);
$(‘a[href^="‘+window.location.origin+‘"]‘).attr(‘target‘,‘_self‘);

Note: window.location.origin 在IE10下无法工作. 这个修复 专门处理这个问题。

根据文本选择元素

通过使用 contains() 选择器可以根据内容搜索对应的元素,下述代码的作用就是在文本不存在的时候隐藏元素:

var search = $(‘#search‘).val();
$(‘div:not(:contains("‘+search+‘"))‘).hide();

可见性变化时候的触发

在某个Tab获得焦点或者失去焦点的时候:

全选复制放进笔记

$(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!‘);
  }
});
时间: 2024-10-15 03:05:40

你应该知道的jQuery的小技巧的相关文章

Jupyter-NoteBook-你应该知道的N个小技巧

智能决策上手系列教程索引 不断更新部分内容来自于翻译整理 多行输出 在Notebook的中开头cell中添加以下代码可以实现多行输出: from IPython.core.interactiveshell import InteractiveShell InteractiveShell.ast_node_interactivity = 'all' #默认为'last' 例如: 如果需要一劳永逸的在每个文件中自动实现这个功能,可以在macOS的/Users/your_user_name/.ipyt

(转) Java程序员应该知道的10个调试技巧

原地址:http://www.csdn.net/article/2012-09-03/2809495-java-debugging-tips-with-eclipse 调试可以帮助识别和解决应用程序缺陷,在本文中,作者将使用大家常用的的开发工具Eclipse来调试Java应用程序.但这里介绍的调试方法基本都是通用的,也适用于NetBeans IDE,我们会把重点放在运行时上面. 在开始之前,推荐大家去看看Eclipse shortcuts这篇文章,它将会给你带来很多方便.在本文中使用的是Ecli

您可能不知道的ASP.Net小技巧

<!-- 页码和简介 --> 1.  在提交页面之后,保持滚动条的位置 可以在page指令上加上MaintainScrollPositionOnPostback指令 <%@ Page Language="C#" MaintainScrollPositionOnPostback="true"AutoEventWireup="true" CodeFile="..." Inherits="..."

对于程序员来说,要知道的10个调试技巧,你清楚几个

对于程序员来说,要知道的10个调试技巧,你清楚几个 **前言: 调试不仅可以查找到应用程序缺陷所在,还可以解决缺陷.对于Java程序员来说,他们不仅要学会如何在Eclipse里面开发像样的程序,更需要学会如何调试程序.本文介绍了Java程序员必知的10个调试技巧,保证让你受益匪浅!** 调试可以帮助识别和解决应用程序缺陷,在本文中,作者将使用大家常用的的开发工具Eclipse来调试Java应用程序.但这里介绍的调试方法基本都是通用的,也适用于NetBeans IDE,我们会把重点放在运行时上面.

(译)你应该知道的jQuery技巧

帮助提高你jQuery应用的简单小技巧. 回到顶部按钮 图片预加载 判断图片是否加载完 自动修补破损图像 Hover切换class类 禁用输入 停止正在加载的链接 toggle fade/slide 简单的手风琴 使两个DIV同等高度 在浏览器标签/新窗口打开外部链接 根据文本获取元素 可见变化的触发 Ajax调用错误处理 链式操作 回到顶部按钮 利用jQuery里的animate和scrollTop方法,你便不需要使用插件创建简单的滚动到顶部动画. // Back to top $('.top

你应该知道的jQuery技巧

帮助提高你jQuery应用的简单小技巧. 回到顶部按钮 图片预加载 判断图片是否加载完 自动修补破损图像 Hover切换class类 禁用输入 停止正在加载的链接 toggle fade/slide 简单的手风琴 使两个DIV同等高度 在浏览器标签/新窗口打开外部链接 根据文本获取元素 可见变化的触发 Ajax调用错误处理 链式操作 回到顶部按钮 利用jQuery里的animate和scrollTop方法,你便不需要使用插件创建简单的滚动到顶部动画. // Back to top $('.top

Java程序员应该知道的10个调试技巧

转自:http://www.csdn.net/article/2012-09-03/2809495-Java-Debugging-Tips-with-Eclipse 木有收藏按钮,就直接转过来了.仔细阅读,很有帮助哈…… 摘要:调试不仅可以查找到应用程序缺陷所在,还可以解决缺陷.对于Java程序员来说,他们不仅要学会如何在Eclipse里面开发像样的程序,更需要学会如何调试程序.本文介绍了Java程序员必知的10个调试技巧,保证让你受益匪浅! [CSDN.NET 张红月/编译] 调试可以帮助识别

你可能不知道的 Android Studio 小技巧之「多行编辑」

Android Studio 大家应该都很熟悉了,但是可能很多人都仅限基本的功能使用,而 Android Studio 非常强大,有很多非常实用却又鲜为人知的小技巧,熟练掌握这些小技巧将能极大的提高你的工作效率,今天就来给大家介绍一个很实用的小技巧「多行编辑」. 正常情况下我们写代码都是一行一行敲的,就如当初我们小时候写作业大部分都是一支笔去写,而有部分同学在写一些重复的作业时有同时用两支笔写的,比如我就干过这种事.在一些重复性工作的时候,会极大的提高效率,而 Android Studio 就有

企业技术负责人必须知道的DevOps10个小技巧

DevOps成为越来越多的大型公司和组织的关键,所以参考一些公司成功实施DevOps的一些做法对我们很重要. 很明显,只要正确运用,DevOps会是非常有效的工具.今年6月份,一份Puppet问卷显示,使用DevOps方法的IT部门成功部署软件的次数平均是不使用的200倍.同时,他们的恢复次数比没使用DevOps的同行多了24次,而且修改配置的失败率降到原来的三分之一. 因为这些成功,DevOps变得格外流行,一份2012年以来的真实报告显示DevOps职位比例从不到1%增加到30%. 下面列举