【前端学习笔记】JQuery事件细节、JQ进阶常用方法

事件细节———————————————————————

ev直接使用,不需要兼容操作

ev.pageX(Y) 鼠标的坐标(相对于文档) : ev.clientX(相对于窗口)

ev.which(能监控鼠标键值) : ev.keyCode

ev.preventDefault(); //阻止默认事件

ev.stopPropagation(); //阻止冒泡

事件函数结尾return false;既能阻止冒泡又能阻止默认事件

one()
    $(‘div‘).one(‘click‘,function(){}); //事件只执行一次

JQ进阶方法—————————————————————–

get()
        $(‘#div‘).get(0).innerHTML
        //将JQ取的元素转化为原生JS识别的写法,
    get()取的是获取的一组元素
    get(i)取的是获取的一组元素第i个

    不过在JQ下也有length这个属性。
    JQ取的一组元素也能通过下标[i]变成原生JS识别的元素
    如:
        $(‘li‘)[i].style.background = ‘red‘;
outerWidth()
    针对隐藏元素和参数true

    outerWidth(false)相当于原生JS的offsetWidth
    但offsetWidth不能获取隐藏元素的值

    outerWidth()能获取隐藏元素值

text()
    $(‘div‘).html();只能获取一组元素第一个元素的html内容

    而$(‘div‘).text();获取的是该组元素所有元素的文本内容(不含标签)

remove()
    $(‘div‘).remove();返回的是被删除的这个元素对象,以方便下次
    再添加这个元素。另外这个方法执行后会移除调用这个方法的元素
    的所有绑定事件。

detach()
    跟remove()方法一样,但是会保留这个元素删除前的所有操作行为。

$(function(){});/$(document).ready(function(){});
    和原生JS的window.onload=function(){}相似

    区别是onload要等所有html结构(例如图片)加载完,才能执行代码

    $(function(){});是等dom加载完就执行里面的代码,性能要好

    高版本的浏览器用 DOMContentLoaded

parents()
    获取元素的所有祖先节点
    parents(‘div‘)还可以筛选所有祖先节点中的指定节点

closest()
    获取最近的指定祖先节点(包括当前元素自身)
    closest(‘div‘)筛选最近一个的指定祖先元素,
    和parents()的区别是只能找到一个元素

siblings()
    获取所有的指定兄弟节点 

nextAll()
    获取元素所有后面的指定兄弟节点  

prevAll()
    获取元素所有前面的指定兄弟节点  

parentsUntil()
    向上获取每层祖先节点直到指定祖先节点位置

nextUntil()
    获取元素所有后面的兄弟节点,直到指定节点结束

prevUntil()
    获取元素所有前面的兄弟节点,直到指定节点结束

clone()
    克隆节点。克隆出来的节点没有之前的绑定事件
    加一个参数true可以将原节点的绑定事件也克隆出来

wrap()
    $(‘span‘).wrap(‘<div>‘)给元素包裹指定标签 

wrapAll()
    $(‘span‘).wrapAll(‘<div>‘)给找到的元素整体包裹指定标签
    会把其他非span的元素排除在wrap外,使用时要注意

wrapInner()
    $(‘span‘).wrap(‘<div>‘)给元素内容包裹指定标签 

unwrap()
    删除包装(父级)
    注意,不包括body

add()
    $(‘div‘).add(‘span‘).css()
    元素合并操作(不是把span加到div里)  

slice()
    $(‘li‘).slice(0,4);
    一组元素中取下标范围[a,b)的元素返回 a=b返回空

serialize()
    $(‘form‘).serialize()
    对表单数据进行序列化(串联化),形成一个字符串

serializeArray()
    $(‘form‘).serializeArray()
    对表单数据进行序列化,形成一个JSON数组

animate()
    运动
    第一个参数:json{属性:值}
    第二个参数:时间(运动快慢) 默认400ms
    第三个参数:运动形式 默认swing(慢快慢)。  linear(匀速)
    第四个参数:回调函数,运动完以后要做的事(也可以用链式调用)

stop()
    默认:只会阻止当前运动
    一参:true 阻止所有后续的运动
    二参:true 直接使元素到达当前运动目的地位置

finish()
    立即停止到指定的所有目标点。

delay(100)
    链在animate后,延时运动、

delegate()
    事件委托
$(‘ul‘).delegate(‘li‘,‘click‘,function(){
            this.style.background = ‘red‘;
        });
undelegate()
    阻止事件委托
        $(‘ul‘).undelegate();
trigger()
    主动触发事件
        $(‘#div‘).trigger(‘click‘);
事件细节:
    事件传参
        $(‘#div‘).on(‘click‘,{name:‘hello‘},function(ev){

            alert(ev.data.name);//获取外部传进来的参数
            alert(ev.target);  //获取操作源(全兼容)
            alert(ev.type);    //获取事件类型
        });

$下常用方法(工具方法)——————————————————-

$().fn() 只能给JQ对象用

$.xxx() $.yyy() $.zzz() : 不仅能给JQ用还能给原生JS用,叫做工具方法

$.type()
    判断类型,返回字符串
    和原生JS typeof方法不同的是,该方法可以返回更细的类型
    对object细分了 regexp date array json等类型

$.trim()
    $.trim(str) 去str的前后空格

$.inArray()
    $.inArray(‘b‘,arr);
    类似于字符串方法indexOf();

$.proxy()
    改变this指向
        function show(n1,n2){
            alert($(this));
            alert(n1);
            alert(n2);
        }
        $.proxy(show,documnet,3,4)();
        $.proxy(show,documnet)(3,4);

        /*一参是方法,二参是指向的对象
        而该函数的形参可以写在三参及以后或者后面的执行括号内
        方便在非立即执行的时候传入参数。
        例如:*/
        function show(n1,n2){}
        $(document).click( $.proxy(show, $(#div1),3,4) );
$.noConflict()
    防止命名冲突
    var _$ = $.noConflict();
    可以用_$代替$了

$.parseJSON()
    将字符串解析成JSON

$.makeArray()
    把类数组转化为数组,使其可以使用数组方法
    例如
    类数组 var aLis = $(‘li‘);
        $.makeArray(aLis).push($(‘#li1‘));

ajax for JQ—————————————————————–

    //参数为json形式
    $.ajax({
        url : ‘xxx.php‘,
        data : ‘name=loe&age=20‘,
        type : ‘POST‘,
        comtentType : ‘‘,
        success : function(data){//请求成功以后的回调函数
            $.parseJSON(data)
        },
        error : function(){
            //...
        }
    });

    //抽象出来的方法
    $.get(‘xxx.php‘,{数据},function(){
        //成功的回调函数
    });
    $.post(‘xxx.php‘,{数据},function(){
        //成功的回调函数
    });

    $.getJSON(‘xxx.php?callback=show|?‘,function(){

    });//?代表随机返回函数名字
    functuin show(data){
        //处理JSONP返回数据
    }

JQ插件操作———————————————————-

$.extend
    扩展工具方法下的插件形式 $.xxx() $.yyy()

    写法如下
        $.extend({
            leftTrim : function(){},
            rightTrim : function(){}
        })
$.fn
    $.fn.extend
    扩展到jq对象上的插件形式$().xxx() $().yyy()

    写法:
    $.fn.extend({
            name : function(){
                $(this)//代表调用这个方法的JQ对象。
            }

        })

版权声明:本文为博主原创文章,转载还请留言。

时间: 2024-09-29 14:27:52

【前端学习笔记】JQuery事件细节、JQ进阶常用方法的相关文章

4月12日学习笔记——jQuery事件

下面是在 jQuery 中最常使用的 bind()方法举例:$("#testDiv4").bind("click", showMsg); 我们为 id 是 testDiv4 的元素, 添加 click 事件的事件处理函数 showMsg. 使用 jQuery 事件处理函数的好处: 1. 添加的是多播事件委托,也就是为 click 事件又添加了一个方法,不会覆盖对象的 click 事件原有的事件处理函数. 1 $("#testDiv4").bind

JQuery学习笔记- jQuery 事件与应用

1. 页面加载时触发ready()事件 ready()事件类似于onLoad()事件,但前者只要页面的DOM结构加载后便触发,而后者必须在页面全部元素加载成功才触发,ready()可以写多个,按顺序执行.此外,下列写法是相等的: $(document).ready(function(){})等价于$(function(){}); 2. 使用bind()方法绑定元素的事件 bind()方法绑定元素的事件非常方便,绑定前,需要知道被绑定的元素名.绑定的事件名称.事件中执行的函数内容就可以,它的绑定格

WEB前端学习笔记 五

接web前端学习笔记第四篇,此篇为web学习笔记 五,在此感谢您的采集和转发,但请注明文章出自网知博学. 2.0.3  html标签的属性格式 现在我们知道了两个双标签分别是,标题标签:<h1> - <h6>.和段落标签:<p></p>还知道了一个换行的单标签:<br />,现在我们给<p></p>标签添加一个属性,来改变段落是右对齐,还是左对齐,还是居中. 如上图,<p>标签中的 align(中文就是排列的意

WEB前端学习笔记 一

最近时间比较充裕,整理了一下学习过的笔记,此篇笔记包含了:Html.Css.JavaScript.Jquery.以及使用帝国CMS或是织梦CMS建立自己的网站,也许也会整理一下PHP的笔记,如果时间允许会整理完全. 虽然笔记是从最基础的开始,但是,并不包含电脑的基础知识,所以你必须已经掌握了一些电脑的基本操作,比如开关机,你的电脑用的是什么操作系统,至少也要会用word和wps吧.浏览器是做什么的,什么拷贝.复制.粘贴.知道最基本的文件类型,如,文本文件,视频文件,图片文件,什么是可执行文件,分

jQuery学习笔记——jQuery基础核心

代码风格 在jQuery程序中,不管是页面元素的选择.内置的功能函数,都是美元符号“$”来起始的.而这个“$”就是jQuery当中最重要且独有的对象:jQuery对象,所以我们在页面元素选择或执行功能函数的时候可以这么写: $(function () {}); //执行一个匿名函数 $(‘#box’);//进行执行的ID元素选择 $(‘#box’).css(‘color’, ‘red’);//执行功能函数由于$本身就是jQuery对象的缩写形式,那么也就是说上面的三段代码也可以写成如下形式:jQ

jQuery学习笔记——jQuery常规选择器

一.简单选择器在使用 jQuery 选择器时,我们首先必须使用“$()”函数来包装我们的 CSS 规则.而CSS 规则作为参数传递到 jQuery 对象内部后,再返回包含页面中对应元素的 jQuery 对象.随后,我们就可以对这个获取到的 DOM 节点进行行为操作了.#box {//使用 ID 选择器的 CSS 规则color:red;//将 ID 为 box 的元素字体颜色变红}在 jQuery 选择器里,我们使用如下的方式获取同样的结果:$('#box').css('color', 'red

Caliburn.Micro学习笔记(三)----事件聚合IEventAggregator和 Ihandle&lt;T&gt;

Caliburn.Micro学习笔记(三)----事件聚合IEventAggregator和 Ihandle<T> 今天 说一下Caliburn.Micro的IEventAggregator和IHandle<T>分成两篇去讲这一篇写一个简单的例子 看一它的的实现和源码 下一篇用它们做一个多语言的demo 这两个是事件的订阅和广播,很强大,但用的时候要小心发生不必要的冲突. 先看一下它的实现思想 在Caliburn.Micro里EventAggregator要以单例的形式出现这样可以

2017-2-15从0开始前端学习笔记-文本

2017-2-15从0开始前端学习笔记-文本 标签 文本 粗体和斜体 <b>bold粗体</b> <i>italic斜体</i> 上标和下标 <sup>上标</sup> <sub>下标</sub> 空白 换行符和水品线 <br/>换行符 <hr/>水平线 语义化标记 加粗和强调 <strong>加粗 加强语气</strong> <em>强调 斜体 能改

WEB前端学习笔记 四

接上一篇,web学习笔记 四,在此感谢您对此篇笔记的认可,但转发时请注明文章出自网知博学. 2.0  html的语法格式 html的标签要写在尖括号中 :<> 在在英文输入法状态下,按住shift键然后再按它左侧的尖括号就可了, 先学习一个简单的h1标签,是个标题标签,在html中这样写: <h1>我在h1标签中,我就是标题</h1> 那么h1标签中所包裹的文字,就标记成标题了.通过浏览器的解析后在页面上显示出来的效果就是字体加粗,加黑,和word中的标题性质一样! 大

学习笔记---Javascript事件Event、IE浏览器下的拖拽效果

学习笔记---Javascript事件Event.IE浏览器下的拖拽效果     1. 关于event常用属性有returnValue(是否允许事件处理继续进行, false为停止继续操作).srcElement(触发事件的事件源对象)和attachEvent("onclick",function(){...}); 2. a. 实现拖放(Drag and Drop): 目前支支持IE, 若定制某对象为可拖放对象, 则必须覆盖目标对象的dragenter和dragover事件, 可以用e