现在的位置: 首页 > 综合 > 正文

jquery一部分小总结

2013年06月22日 ⁄ 综合 ⁄ 共 3085字 ⁄ 字号 评论关闭

1.只要是支持Dom程序的标准语言,都可以把他们称作DOM对象,dom不是只针对html的  像xml也支持,如getelementbytagname()、
getelementbyId()、setAttribute() getAttribute()是dom里的核心(domcore)方法,不是javascript自己单独有的方法。
有这样一句话,jquery作为javascript的库,继承并发扬了javascript对 Dom对象的操作的特性,使开发人员能方便地操作DOM对象。
jquery时对dom的操作,也就是说 咱们用的jquery操作的都是dom了。
其实DOM  分为 dom-core   html-dom  css-dom

window.onload    ==  $(window).load(funciton(){});不能同时出现两个 否则的话 只能执行最后一个  
$(function(){

$("#panel h4.head").bind("click",function(){
    $(this).next("div.content").show();
});
})
this引用的是(携带相应行为{这里的行为bind指的是click事件})的DOM元素
在代码中如果发下一个对象被多次调用的话,可以定义一个局部变量:如var $content=$(this).next("div.content");
通过调用局部变量 可以增加效果($content)

2.jquery里什么叫做事件对象

之前IE-DOM和表追的dom实现事件对象的方法各有不同,导致在不同浏览器中获取事件对象变的困难。所以jquery进行了封装,使任何浏览器
中都能很轻松的获取事件对象以及事件对象的一些属性。
如:$('element').bind('click',function(event){//:事件对象

})
它只有处理函数才能访问。函数执行完后,就被消毁

event.relateTarget();这个方法不知道什么意思?谁理解的话给说一下

event.pageY  event.pageX  //获取鼠标当前相对于页面 的坐标。但是没有用jquery时在IE下  event.x()  event.Y();
event.which();是现实鼠标的哪个键
event.metaKey  获取键盘的ctrl
event.originalEvent()指向原始的事件对象。

对于在标准DOM中,mouseover和mouseout所发生的元素可以通过event.target()方法来访问。
3.事件冒泡
也就是你嵌套的几层div都有click事件时,当点击最里面的那个时,外面那两层也触发了click。
顺序是从里面往外,这就时冒泡。注意当点击第二个div层时(顺序我在这儿定义成从里往外的,这个大家自己可以按自己的理解去想)
最里面的那个div层不会触发的(也就是第一个层),只会触发第二个和第三个。
解决事件冒泡的方法就是,用你触发的那个事件对象也就是第二节的那个(event)加上stopPropagation()这个方法,就行了。然而要
是想阻止默认的行为比如在写 表单判断时 如果为空不让进入后台,就可以这样写当判断为空时  event.preventDefault();
其实这两种最简写的方式也可以这样写 return  false;其实这两个事件对象的方法符合w3c标准但在IE浏览器中不能用
,所以用return  false;

4.动画效果aminate

$(funciton){
    $("panel").css('opaccity','0.5');//设置不透明度
    $("panel").click(function(){
        $(this).animate({left:'400px',height:'200px',opacity:'1'},300).animate({top:'200px',width:'200px'},3000)
        //可以写成链接式的,也可以写成对象分层的
        //this这的时匹配的对象在这里换成dom对象了,但是加上
        $()又变成jquery对象了 ,animate花括号里的参数时同时进行的,接下来会有先后 进行的列子
        //如果你想在他们都执行完后在最后的animate()后面加个样式如.css('border',"5px solid blue");这样是不可行的他会先执行
        样式,所以可以在animate的第三个参数上加个自定义函数就行了(详细的东西可以看手册http://www.jquery.com)
})

}

(2).停止元素的动画  stop(false,flase);有两个参数
$("panel").hover(function(
    $(this).stop(true)
    .animate({height:'150'},200)//如果在此时触发了光标移除事件,那么这个就不会执行了
    .animagte({widht:'134'},200)//这个也不会执行的,因为stop这个函数里第一个参数时加了个true,如果是false的话
    这个队列时执行的,ture的话他会吧当前元素接下来尚未执行完的{动画队列}都清空。我理解的动画队列就是stop()如果不加参数的话
    它只把它紧跟在后面的那个animagte取消掉,动画队列指的是一节一节的动画执行效果。
    ,function(){
        $(this).stop(true)
        .animate({height:'150'},200)
        .animagte({widht:'134'},200)
    }
){});
第二个参数为true时可以用于让正在进行的动画直接到达结束时刻的状态,通常用于最后一个动画需要基于前一个动画的末状态
的情况,可以通过stop(false,true)这种方式直接到达末状态。如果第二参数时true:停止当前动画并直接到达当前的末状态,并清空动画队列
(前面说了这个队列)
(3).一些动画方法toggle()   它可以代替 hide()  show();  sideToggle()可以代替 sideUp() sideDown()、fadeIn() fadeOut()fadeTo()
其实这些方法改变的只是对象的样式  如:宽 高 不透明度   其实这些方法在内部的是实质是调用了animate()这个方法。(大家可以理解一下就明白了)
比如淡入淡出还有设置 时间     。animate()当设置属性时不是一下就达到设置的状态,而是有一个过程的。(想清楚了吗?再来个列子)
$("a").animate({height:'show',width:'show',opacity:'show'},400);  ==  $('a').show(400);

(3).接下来 我在仔细说一下动画队列啊其实也是抄袭别人的(哈哈哈)
(1)一组元素上的动画效果
    当在一个animate()方法中应用多个属性时,动画是同时发生的。如:({width:'344',height:'432'})
    当以链式的写法应用动画方法时,动画时按照顺序发生的。
(2)多组元素上的动画效果
    默认情况下,动画时是同时发生的。
    当以回调的形式应用动画方式时,动画是按照回调顺序发生的。

解决动画队列的方法这样也行: $('对象').is(:animate);进行判断

总结的有点乱   ,后来的总结中我会标上第几章

抱歉!评论已关闭.