jQuery(一)

来源:互联网 发布:svg js动态修改path值 编辑:程序博客网 时间:2024/06/17 12:47

1.在css中,经常会在第一行写下这样的一段样式

*{  padding:0;    margin:0;}

通配符星号意味着给所有的元素设置默认的边距,jQuery中我们也可以通过传递星号选择器来选中文档中的元素
描述:

$("*")

抛开jQuery,而如果要获取所有文档中的所有元素,通过document。getElementsByTagName()中传递星号同样可以获取到,不难发现,id ,class,tag都可以通过原生的方法获取到对应的节点,但是我们还需要,考虑一个兼容性的问题:

①IE会将注释节点实现为元素,所以在IE中调用getElementsByTagName()里面会包含注释节点,这个通常是不应该的
②getElementById的参数在IE*以及比较低的版本不区分大大小写,IE7以及比较低的版本中,表单元素中,如果表单A的name属性名用了另外一个元素B的ID并且A在B之前,那么getElementById会选中A
③IE8以及比较低的版本,浏览器不支持getElementsByClassName

2.jQuery中的on( )的用法:

表单事件与键盘事件都有个特点,就是直接给元素绑定一个处理函数,所有这类事件都是属于快捷处理。翻开源码其实可以看到,所有的快捷事件在底层的处理都是通过一个”on”方法来实现的。jQuery on()方法是官方推荐的绑定事件的一个方法。

基本用法:

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

注意:
这里写图片描述

由空格分隔多个事件值。必须是有效的事件。

最常见的给元素绑定一个点击事件,对比一下快捷方式与on方式的不同

$("#elem").click(function(){})  //快捷方式$("#elem").on('click',function(){}) //on方式

多个事件绑定同一个函数:

$("#elem").on("mouseover mouseout",function(){ });

通过空格分离,传递不同的事件名,可以同时绑定多个事件

多个事件绑定不同函数:

$("#elem").on({    mouseover:function(){},      mouseout:function(){},});

将数据传递到处理程序:

function greet( event ) {  alert( "Hello " + event.data.name ); //Hello 你好}$( "button" ).on( "click", {  name: "你好"}, greet );

on()的高级用法:

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

在on的第二参数中提供了一个childSelector选择器,简单的来描述下

参考下面3层结构:

<div class="left">    <p class="aaron">        <a>目标节点</a> //点击在这个元素上    </p></div>

给出如下代码:

$("div").on("click","p",fn)

事件绑定在最上层div元素上,当用户触发在a元素上,事件将往上冒泡,一直会冒泡在div元素上。如果提供了第二参数,那么事件在往上冒泡的过程中遇到了选择器匹配的元素,将会触发事件回调函数

0 0
原创粉丝点击