说说jQuery相似事件之间的区别
.mouseover .mouseenter 和 .mouseout .mouseleave
手册上解释为:
.mouseover() .mouseout()表示鼠标移入和鼠标移除的时候触发。
.mouseenter() .mouseleave()表示鼠标穿过和穿出的时候触发
本质的区别在于:.mouseenter() .mouseleave()这组元素在穿过子元素不会触发,而.mouseover() .mouseout()则会触发
例如:
<body>
<div style="width:200px;height: 200px;background-color: pink;">
<p style="width:100px;height: 100px;background-color:silver;">小花</p>
</div>
<!-- <strong></strong> -->
</body>
$(function(){
$('div').mouseover(function(){
$('strong').html(function(index,value){
return value+'1';
})
})
})
当鼠标移入div时会触发,移入p会再触发,而mouseenter在穿过子元素时不会触发
mouseout在移出子元素时也会触发,但是mouseleave不会
当只有一个元素的时候,mouseover和mouseenter产生的效果是一样的
jQuery的合成事件:
hover():
语法格式:hover(enter,leave);
hover()方法用于模拟光标悬停事件,当光标移动到元素上时,会触发第一个指定函数(enter),当光标移出这个元素时,会触发指定的第二个元素。它所产生的效果是mouseenter和mouseleave的结合体
css中有伪类选择符,例如:‘hover’,当用户光标悬在上面时,改变元素的外观,在大多说符合规范的浏览器中,伪类选择符可以用于任何元素。然而在IE6;浏览器中,伪类选择符仅可用于超链接,对于其他元素可以使用jQuery的 hover()方法。
toggle()
toggle()方法作用一:
语法格式:toggle(fn1,fn2,fn3)
用于模拟鼠标连续单击事件,第一次单击元素触发指定的第一个函数,当再次单击同一个元素,会触发指定的第二个函数,如果后面有更多的函数,依次触发。
这个方法比较特殊,在1.8版费用,在1.9版中删除用法,也就是点击切换复合事件的用法。但如果我们特别想用这个方法又不想自己编写,我们可以下载jquery-migrate.js文件,来向下兼容已经被删除掉的方法。
作用二:
切换元素的可见状态。如果元素使是可见的,单击切换为隐藏状态,反之,切换为显示状态