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

Jquery的一些基础知识记录(事件)

2013年12月13日 ⁄ 综合 ⁄ 共 4472字 ⁄ 字号 评论关闭

(1)

toggle有开关,切换的意思。作用在于交替执行内部的函数。

var a=$("#f").toggle

function(  ){            // toggle通过鼠标点击触发的
$(this).css("color","red");
},

function(  ) {

$(this).css("color","blue");
} )

注意原生js里this就是this,但是jquery中一定要写成$(this)

toggle()是模拟连续点击事件,点一次执行体内第一个函数,点第二次执行体内第二个函数,依次进行,等到全部点完,又重复进行。

注意还有个hover(  )是模拟连续的hover,hover一次执行第一个函数,移走则执行第二个函数,如次往复。和toggle(  )的功用类似,一个是点击,一个是hover。

(2)

判断是否有某个样式,hasClass(   )方法,如果有就返回true。

(3)

注意$(document)这个里头不需要双引号,而取body的话,$("body")里头必须要加双引号。document比较特殊。

(4)

注意注册事件的时候,不要写成onmouseover,onclick,要把on统统去掉。

(5)

$(document).ready(  )是把dom结构加载完就可以操作,于是很多图片还没加载完,这个时候如果有对图片取width等这样的操作就会失效,还是要用window.onload。jquery中window.onload的等价方法是$(window).load(  )

(6)

注意$相当于jQuery,而不是JQuery,只有第2个字母大写。

(7)

阻止冒泡的话,用事件对象,e.stopPropagation(  )来实现。

(8)

(9)

bind(  )绑定事件,感觉很像addEventListener(  ),如:

bind("click",function(  ){alert(1)}  );

(10)

注意e可以写成event,也可以自由取,反正是在事件函数里头的参数

 e.target可以找到具体的目标对象(注意e只是事件对象,而不是目标对象),然后e.target.href可以返回该<a>标签的href值。

e.pageX和e.pageY是鼠标的位置,原生js中FF的处理也是这样,但ie的处理是e.x和e.y

e.screenX和e.screenY是鼠标和屏幕之间的距离,但窗口缩放时有用。

e.which返回使用了鼠标哪个键,1是左,2右,3中间。(貌似不好使,测了下左键的值是0)

(11)

还可以为元素,一次绑定多个相同的事件。

$("#f").bind("click",function(  ){
alert(1);
}).bind("click",function(  ){
alert(2);
})

邦了2个click,会先后执行。

(12)

one(“ click”,函数体 ),one(  ) 表示只执行一次,执行一次后就马上失效。

(13)

unbind(  )是删除事件,unbind("click")只删除click类事件,unbind(    )不带参数则将所有的事件删除。

如果一个元素注册了3个一模一样的事件,而要删除其中第2个,就要将第2个事件中的函数名作为参数,写在unbind()式子中。

$("#f").bind("click",function(  ){
alert(1);
}).bind("click",function(  ){
alert(2);
}).bind("click",function(  ){

alert(2);
})

这里可能会觉得没函数名怎么办,其实可以临时赋值,改成:

$("#f").bind("click",function(  ){
alert(1);
}).bind("click",fun2=function(  ){           
alert(2);
}).bind("click",function(  ){

alert(2);
})

 // 临时赋了个变量名“fun2”,最后表达式为:$("#f").unbind("click",fun2),这里就只删除第2个事件

(14)

trigger(  )不用实际有点击行为,就可以模拟点击事件后的效果。将事件放于括号内,带双引号。

$("#f").bind("click",function(  ){
alert(1);
}).bind("click",function(  ){
alert(2);
})
$("#f").trigger("click");

注意,如果自己定义的事件名就叫focus,则.trigger("focus")不仅会触发自己定义的focus事件,还会触法浏览器的默认事件focus里的行为,即获取焦点,如果不希望触法默认的事件,可以用.triggerHandler("focus")。

(15)

fadeIn(  ),fadeOut(  )与show(  ),hide(  )的区别在于,前者只改变透明度(消失后不在文档流中占位),后者还改变高度,宽度效果(消失后,占位也消失啦

(16)

animate()有动画模拟,使具有生命的意思。

$("#f").animate({"left":"500px","top":"400px"},3000 ),第一个参数需要大括号引用,即使只有一个参数,同时left,top等参数有无双引号都可以。

注意id=f的节点已经给自己设置了“position:relative”,所以所有的移动都是相对自己而言。

$("#f").animate({"left":"+=500px","top":"400px"},3000 ),表示累加,再点击的时候会再向右移动500px(这里注册个事件就可以)

滑动后又回来: 注册2个事件,先后执行

$("#f").click(function( ){
$("#f").animate({"left":"500px",“opacity”:0.5},3000 );           //顺便改改透明度
$("#f").animate({"left":"0px",“opacity”:1},3000 );
});

animate(  )的第三个参数可以加回调函数,但动画结束时就会执行该函数,如:

$("#f").animate({"left":"0px","opacity":1},3000 ,function( ){
$(this).css("color","red");    
});
(17)

$("#f").toggle( function(  ){
$(this).animate({left:"500px"},2000);
},function(  ){
$(this).stop(  );
})

点击第一次运动,点第二次停止。stop(  )可以停止当前动画。

(18)                         

这里的toggle(  )很奇怪,本来是作为点击交互事件的表达式,这里又成为一个函数。。。toggle(  )是用来切换元素可见状态的,如果可见,在切换为隐藏,反之。

$("#f").click(
function(){
$(this).toggle(  ).show(5000);
}
)

注意toggle(  )可以带参数,true和false,如果是false则是隐藏,反之。

(19)

slideToggle(  )先收起,后展开。。。

$("#f").click(
function(){
$(this).next().slideToggle(  );  // 注意不能在自己身上写这个表达式,因为收起后,没法展开,收起后就没法点击啦。。一般都是写给next(  )。
}
)

(20)

$("#f").height(  )是个返回值,会返回元素高度,不可被赋值。$("#f").height(500),里头如果有参数,则是直接设置元素的高度行为。

(21)

$("#fs").click(                       // toggleClass也起到点击就更替类的作用
function(  ){
$(this).toggleClass("v");

    }

)

(22)

each()相当于for,注意each(  )里头一定要有个function(  ){  }函数体,不可直接将内容写在each(  )里。

$("p").each(

    function(  ){

        alert(1);

    }

)         // 给每个p加一个alert(  )事件。

(23)

 $("p").css("color","red"),虽然jquery有直接遍历注册的功能

 等价于: 

 $("p").each(
  function(){
      $(this).css("color","red");
  }
  )

(24)

<a>我们都是好孩子</a>

$("#f").click(

    function(e){

      alert(e.target.nodeName) ;  // 会返回一个大写的A。  

    }

)

(25)

bind绑双事件:        

  2个事件写在一个大括号里,事件与事件之间用逗号隔开,每个事件的名字和函数体之间用冒号隔开(Json格式类型)。就跟一次性改多个css样式差不多。

  $("#f").bind( {click:function(  ){
   alert(1);
       },
   mouseover:function(  ){
       alert(2); }
   })

(26)

 function GetCode(event) { 

    alert(event.data.foo)     // 接收bind传过来的参数,用event.data的形式,然后后接json传统调法

  }
$(document).ready(function(  ){

     $("#s").bind("click",
{"foo":'abc'}
,GetCode);     // bind第二个参数是给事件对象event传参数,用json格式形式

});

(27)

unbind(  )是移除事件,有三种情况:

1  unbind(  ),不带任何参数,是移除任何事件,无论什么类型。

2  unbind(click),带一个事件类型参数,是只移除上面的click事件。

3  unbind(click,A),带事件类型参数还带函数名,是当click事件底下有多个函数体的时候,移除其中一个。比如ul li都注册了click,但每一个li的click具体到各自内容又有所不同。

(28)

show(  )可以带一个回调函数

("#f").click(                       // 点f,让s显示并且显示完后加个边框。

    function(  ){

        $("#s").show(3000,function( ){             // 注意到show里带的回调函数,等显示完后才触发

        $(this).css("border","1px solid red");

        } )

})

(29)

show(  ),slideUp(  ),fadeIn(  )这些都不仅仅可带时间参数,还可以带一个回调函数。动画完成后执行。

(30)


(31)

(32)



 


抱歉!评论已关闭.