jQuery中的一些小技巧

前端之家收集整理的这篇文章主要介绍了jQuery中的一些小技巧前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

JQ使用过程中,一些小技巧:

1.is()方法

根据选择器、元素或 jQuery 对象来检测匹配元素集合,如果这些元素中至少有一个元素匹配给定的参数,则返回 true。一些小应用如下:

  • list

    item 1

  • list item 2
  • list item 3
  • 如此,便可以限制住,只有列表项li本身点击之后,才会触发写入的点击事件.

    其也可以做以下一些判断:

    Box的类名的元素? elem.is('.bigBox') && console.log("it has the bigBox class!"); // 是不是隐藏的? elem.is(':not(:visible)') && console.log("it is hidden!");

    这里有一点需要注意,&&运算符可以用来做一个判断,当前面的条件满足时,后面的会执行,但是后面的条件不能是表达式,只能是console.log()或则++i一类的.

    还有以下比较有用的用法:

    2.jquery中拓展方法

    $.fn是指jquery的命名空间,加上fn上的方法属性,会对jquery实例每一个有效。

    如扩展$.fn.abc(),即$.fn.abc()是对jquery扩展了一个abc方法,那么后面你的每一个jquery实例都可以引用这个方法了.

    那么你可以这样子:$("#div").abc();

    jQuery.extend(object);为扩展jQuery类本身.为类添加新的方法

    jQuery.fn.extend(object);给jQuery对象添加方法

    jQuery.extend(object); 为jQuery类添加添加方法,可以理解为添加静态方法。如:

    便为 jQuery 添加一个为add 的 “静态方法”,之后便可以在引入 jQuery 的地方,使用这个方法了,

    $.add(3,4); //return 7

    0; } console.log($('#elem').exists() ? "exists!" : "doesn't exist!");

    3.jQuery方法$()实际上是拥有两个参数的

    这里,第二个参数用来限制第一个参数给定的查找结果

    ',{ "class": "bigBlue","css": { "background-color":"purple" },"width" : 20,"height": 20,"animate" : { // 可以设置div的动画效果 "width": 200,"height":50 } }).appendTo('#result');

    这里,第二个参数用来对创建的元素进行设置.

    4.jquery中的end()方法,可以让链式语法写起来更加高效,快捷.

    这里,end()会返回查找元素的上一级.

    5.contextmenu事件 右键点击

    也许希望web 应用感觉更像原生的,那么可以阻止contextmenu默认事件。

    当然,应用此事件,也可以自定义,右键出来的操作菜单,类似于

    6.有时候不希望网页的某一部分内容被选择比如复制粘贴这种事情,我们可以这么做:

    $('p.descr').attr('unselectable','on').css('user-select','none').on('selectstart',false);

    这样,内容就不能再被选择了.

    7.最小的DOM操作

    用js操作DOM是非常浪费资源的,下面的方法一般是我们通常的做法:

    element '+i+''); }

    这样做,重复的向元素中添加,无疑是一种极大的资源浪费,而通过下面的方法,则可以减少大量的DOM操作

    element '+i+''); } elem.append(arr.join(''));

    8.更方便的分解URL

    我们一般可以使用正则表达式来分解URL,但是这并不是一个好方法,我们可以借助a标签来完成URL的分解

    ',{ href: url }); console.log(url); console.log('Host name: ' + a.prop('hostname')); //Host name: tutorialzine.com console.log('Path: ' + a.prop('pathname')); //Path: /books/jquery-trickshots console.log('Query: ' + a.prop('search')); //Query: ?trick=12&&abc=123 console.log('Protocol: ' + a.prop('protocol')); //Protocol: http: console.log('Hash: ' + a.prop('hash')); //Hash: #comments

    这样我们就可以很快速的完成URL的分解

    9.有时候,缓存selector,反而可以优化你的js

    下面有三种情况,第一种情况是一部分人的通常做法,这种写法费力而且不讨好,后面两种方案则是对第一种的优化,可以二选一.

    第一种:

    第二种和第三种,可以二选一:

    10.on()方法

    on() 方法在被选元素及子元素上添加一个或多个事件处理程序。

    自 jQuery 版本 1.7 起,on() 方法是 bind()、live() 和 delegate() 方法的新的替代品。该方法给 API 带来很多便利,推荐使用该方法,它简化了 jQuery 代码库。

    注意:

    使用 on() 方法添加的事件处理程序适用于当前及未来的元素(比如由脚本创建的新元素)。

    提示:

    如需移除事件处理程序,请使用 off() 方法。

    提示:

    如需添加只运行一次的事件然后移除,请使用 one 方法。

    $(selector).on(event,childSelector,data,function,map)

    11.模拟触发事件

    我们可以通过trigger模拟触发一个click事件

    同时,我们亦可以,使用on()方法创建自己喜欢的事件名称,然后通过trigger来触发。举例如下:

    猜你在找的jQuery相关文章