jQuery技术

[译] 人人须知的 jQuery 技巧(2)

字号+ 作者:H5之家 来源:H5之家 2016-12-10 17:04 我要评论( )

这个例子设置了 min-height,意味着高度可以大于主 div 而不能小于它。然而,更灵活的方法是遍历一组元素,然后将高度设置为最高元素的高度: var $columns = $( '.column' ); var height = 0 ;$columns.each(($( t

这个例子设置了 min-height,意味着高度可以大于主 div 而不能小于它。然而,更灵活的方法是遍历一组元素,然后将高度设置为最高元素的高度:

var $columns = $('.column'); var height = 0; $columns.each(($(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');

注: window.location.origin 在 IE10 中不可用. 这个修复方案 正是关注于该问题。

通过文本查找元素

通过使用 jQuery 的 contains() 选择器,你能够查找元素内容中的文本。若文本不存在,该元素将被隐藏:

var search = $('#search').val(); $('div:not(:contains("' + search + '"))').hide(); 在 visibility 属性变化时触发

当用户的焦点离开或者重新回到某个标签页时,触发 Javasrcipt:

$(document).on((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 中用以简化和优化代码的最佳实践。

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • jQuery Mobile开发进阶:API扩展介绍

    jQuery Mobile开发进阶:API扩展介绍

    2015-11-17 11:58

  • Sung10086的课程

    Sung10086的课程

    2015-11-12 12:34

  • MOOC的课程

    MOOC的课程

    2015-10-14 11:49

  • 用ThemeRoller定制jQuery Mobile样式

    用ThemeRoller定制jQuery Mobile样式

    2015-09-29 17:01

网友点评
e