jquery事件与绑定事件

1.首先,我们来看一下经常使用的添加事件的方式:

<input type="button" id="btn" value="click me!" onclick="shao();" />
<script type="text/javascript">
    function shao() {
        alert("msg is showing!");
    }
</script>

我们最常用的是为元素添加onclick元素属性的方式来添加事件

这种方法的弊端是:

只能为一个事件处理函数,在事件处理函数方法中,获取事件对象的方式不同.

jQuery中的事件

ready事件:

当页面加载完成后,来执行function:

<script>
    $(document).ready(function(e){
        alert(document.getElementById("aa").innerHTML);
        //若是要写function方法,不可以在里面写
    })
    //要在外面写
</script> 

这样写在哪里都可以调用到这个方法;

鼠标事件:

<script>
$("#aa").click(function(){
    alert("点击事件");
})
$("#aa").dblclick(function(){
    alert("双击事件");
})
$("#aa").mouseover(function(){
    alert("鼠标移上")
});
$("#aa").mouseout(function(){
    alert("鼠标离开");
})
$("#aa").mousemove(function(){
    alert("鼠标移动");
})

$("#aa").mouseup(function(){
    alert("鼠标抬起");
})
$("#aa").mousedown(function(){
    alert("鼠标按下");
})

键盘按键按下:给id加没有作用,需要给整个页面加所以用$(document)
$(document).KeyEvent(function(){
    alert("鼠标离开");
})

</script> 

表单元素事件:

<script>
$("#shao").focus(function(){
    alert("获得焦点");
})
$("#shao").blur(function(){
    alert("失去焦点");
})
$("#shao").change(function(){
    alert("值发生变化,change事件");
})
$("#shao").keydown(function(){
    alert("键盘按下");
})
</script>

2.绑定事件(挂事件):

可以动态的改变按钮的事件;

什么是动态绑定?

动态绑定是指动态添加的DOM节点或者html元素,他们最开始时运行的时候是不存在的。如果要给这些动态加入的节点增加事件,就必须要用jquery的on方法来绑定事件。

bind()向匹配元素添加一个或多个事件处理器。

使用方式:
$(selector).bind(event,data,function)

注:bind()函数只能针对已经存在的元素进行事件的设置

代码:首先写两个按钮:

<body>
        <div id="aa" style="width: 100px; height: 100px; background-color: blueviolet;">hello</div>
        <!--<input type="text" id="shao" />-->
<input type="button" id="btn1" value="挂事件" />
<input type="button" id="btn2" value="移除事件" />
    </body>

首先操作点击挂上事件:

<script>
//挂事件,
$("#btn1").click(function(){
    //点击挂事件,给div绑定一个事件:
    $("#aa").bind("click",function(){
    //bind绑定事件
        alert("点击");
    });
    //括号里两个参数,第一个是事件类型(事件名称),第二个参数是要执行的代码
})
</script>

这样的话点击挂事件:

移除事件的按钮:

<script>
//移除事件;
$("#aa").click(function(){
    //点击移除事件;把div里面的事件移除掉
    $("#aa").unbind("click");
    //unbind移除绑定,填一个参数,要移除哪个事件
})
</script>

点击移除,取消aa得点击事件

3.事件数据

一般的事件包含事件源跟时间数据:

事件数据:出发这个时间,会传过来那些数据

js简化,可以不写事件源,因为可以取到

4.JSON语法:

JSON的结构:

json简单说就是javascript中的对象和数组,所以这两种结构就是对象和数组两种结构,通过这两种结构可以表示各种复杂的结构。

(1)对象:对象在js中表示为“{}”括起来的内容,数据结构为 {key:value,key:value,...}的键值对的结构,在面向对象的语言中,key为对象的属性,value为对应的属性值,所以很容易理解,取值方法为 对象.key 获取属性值,这个属性值的类型可以是 数字、字符串、数组、对象几种。

(2)数组:数组在js中是中括号“[]”括起来的内容,数据结构为 ["java","javascript","vb",...],取值方式和所有语言中一样,使用索引获取,字段值的类型可以是 数字、字符串、数组、对象几种。

经过对象、数组2种结构就可以组合成复杂的数据结构了。

json是一种轻量级的数据交换格式

全拼:

JavaScript Object Notation

定义语法:

var  j = {
"one":"111111",
"two":"22222"
};

取值方式:

取索引:

//数组的取值方式:
alert(j["one"]);//直接取索引的方法

点语法:

//点语法:
alert(j.one);

JSON也可以寸二维数组:

var  j = {
"one":"111111",
"two":"22222",
"three":{"aa":"33333"},
};
//数组的取值方式:
//alert(j["one"]);//直接取索引的方法

//点语法:
alert(j.one);
alert(j.three.aa);

遍历JSON数据:

//遍历
for(var v in j)
{
    //定义一个变量v,把j拿到v里面,关键字不是”as“了,是”in“,
    alert(v);
//    这样便利的是索引
    alert(j[v]);
//    这样是根据索引来取值
}

json不具有长度的属性,所以for循环不适应于json

但是for-in同样适应于数组

时间: 2024-11-05 11:34:43

jquery事件与绑定事件的相关文章

jQuery学习-事件之绑定事件(三)

在上一篇<jQuery学习-事件之绑定事件(二)>我们了解了jQuery的dispatch方法,今天我们来学习下handlers 方法: handlers: function( event, handlers ) {         var sel, handleObj, matches, i,             handlerQueue = [],             delegateCount = handlers.delegateCount,             cur =

jQuery学习-事件之绑定事件(二)

在上一篇<jQuery学习-事件之绑定事件(一)>我们了解了jQuery的add方法,今天我们来学习下dispatch方法: dispatch: function( event ) { //这里是修正event对象的属性,处理兼容性问题         event = jQuery.event.fix( event ); var i, ret, handleObj, matched, j,             handlerQueue = [],//事件队列             arg

防止异步刷掉jquery加载绑定事件

<script type="text/javascript" language="javascript">        var prm = Sys.WebForms.PageRequestManager.getInstance();        prm.add_endRequest(function () {            //在这下面写你的js或jquery代码,防止异步刷掉jquery加载绑定事件            $(functio

JQuery Mobile - 为什么绑定事件后会被多次执行?

JQuery Mobile 在绑定事件时候,发现会被多次执行,为什么啊? 原来,jquery click  不是替换原有的function ,而是接着添加,所以才会执行次数越来越多,怎么办才能按需实现功能?在执行正常点击事件之前,解绑事件!! JQuery对事件的绑定主要有两种方式,分别是on和bind,这两种方式分别对应的解绑方式为off和unbind,知道这些,我们就可以写代码了: 一,用on和off // off和on绑定"tap"方法 $("#changePasswo

jquery使用on绑定事件的高级方法

$(doucment).on("click",".main",function(){ } //当页面中需要对发送ajax成功后生成的元素绑定事件时:就需要用到jquery的on方法来绑定事件:因为用这样的事件代理的方法:可以吧事件对象的事件代理到document上:这样就可以通过document来找到你要绑定的元素的对象上:

jquery中on绑定事件

之前项目中动态创建的标签元素  在绑定事件的时候  都是无效  无论如何都不能触发 eg:在页面加载完成之后   再由脚本动态创建的<div>元素  在绑定事件的时候 例如click事件 $("div").click(function(alert("aaa")){}); 那么动态创建的元素是触发不了这个事件的 这是就要用到on来绑定事件了. 但是在W3C中并没有on事件  只有live,delegate 这是由于这里的更新很不及时  ,建议去http:/

Jquery Mobile 中绑定事件

今天遇到了jmobile中绑定事件的问题, 参考:http://liyunpeng.iteye.com/blog/1964165 对页面中的绑定事件有了大概了解,不过这篇帖子年代久远,很多不是很详细,特此记录. 首先查到jmobile中的所有可以用.on()动态绑定的所有事件, 详情参考:http://www.runoob.com/jquerymobile/jquerymobile-ref-events.html 按以前的理解照抄,结果死活出不来效果,认真查看示例发现需要加"pageinit&q

jquery之on()绑定事件和off()解除绑定事件

off()函数用于移除元素上绑定的一个或多个事件的事件处理函数. off()函数主要用于解除由on()函数绑定的事件处理函数. 该函数属于jQuery对象(实例). 语法 jQuery 1.7 新增该函数.其主要有以下两种形式的用法: 用法一: jQueryObject.off( [ events [, selector ] [, handler ] ] ) 用法二: jQueryObject.off( eventsMap [, selector ] ) 参数 参数 描述 events 可选/S

jQuery学习-事件之绑定事件(一)

我们都知道jQuery的事件其思想来源于Dean Edwards的addEvent,通过源码我们知道jQuery在为元素绑定事件时,每种类型的事件(click,blur)时只绑定了一次对应类型的事件处理方法,实际的方法是存在jQuery的缓存系统中的,这样做的好处我就不多说了,绑定方法的函数为add方法,在执行事件的时,通过handers在缓存系统中获取事件列表,然后通过dispatch函数来执行对应的事件. jQuery.event = { add: function( elem, types