jquery-event(事件)-on()方法

jquery on()事件绑定方法的语法:

其中[selector],[data]为可选,可以要也可以不要当你需要过滤(筛选)或者需要传递event.data

注:最后会单独说下event.data

on(events,[selector],[data],fn)

例子:

$(function(){
                 $(document).on(‘click‘,‘h1 span‘,function(){
                        alert($(this).text()) ;
                 });
});

HTML

<body>
<div>div</div>
<div id=‘odiv1‘>div_id = odiv1</div>
<span>span</span>
<h1>
h1
<span>span</span>
</h1>

</body>

on()多个事件绑定的方法

和前面差不多一样,只不过加了是多个空格

$(function(){
                 $(document).on(‘click mousemove‘,‘h1 span‘,function(){
                        alert($(this).text()) ;
                 });
});

html代码段和前面一样

我还是复制过来吧

<body>
<div>div</div>
<div id=‘odiv1‘>div_id = odiv1</div>
<span>span</span>
<h1>
h1
<span>span</span>
</h1>

</body>

on()多个事件设置多个不同的效果:

jquery代码块:

$(‘span‘).on({
                    ‘click‘:function(){
                        console.log($(this).html()) ;
                    } ,
                    ‘mousemove‘:function(){
                        alert($(‘div‘).html());
                    }
 }) ;

html代码块:

<body>
<div>div</div>
<div id=‘odiv1‘>div_id = odiv1</div>
<span>span</span>
<h1>h1<span>span</span></h1>
</body>

event.data单独讲解:

function myHandler(event) {
alert(event.data.foo);
};
$("h1 span").on("click", {foo: "bar"}, myHandler);

最后说下on()可以根据boolean的不同模拟jquery库中的某些事件方法

如:当’selector’为null时,on()和bind()差不多就是一样的了

当然也可以模拟live()方法

如:

live()写法:

$(‘#list li‘).live(‘click‘, ‘#list li‘, function() {
    //function code here.
}); 

on()写法

$(document).on(‘click‘, ‘#list li‘, function() {
    //function code here.
});

还可以替换替换delegate()

delegate()是1.4引入的,目的是通过祖先元素来代理委派后代元素的事件绑定问题,某种程度上和live()优点相似。只不过live()是通过document元素委派,而delegate则可以是任意的祖先节点。使用on()实现代理的写法和delegate()基本一致。

delegate()写法:


$(‘#list‘).delegate(‘li‘, ‘click‘, function() {
    //function code here.
});

on()写法:


$(‘#list‘).on(‘click‘, ‘li‘, function() {
    //function code here.
});

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-10 08:59:36

jquery-event(事件)-on()方法的相关文章

jQuery.load()事件使用方法详解

jQuery.load()是ajax中一种异步加载的事件,我们可以加载整个页面并且也可以带参数加载,下面我来详细介绍jQuery.load()事件用法,希望对初学者有所帮助. .load( url, [ data ], [ complete(responseText, textStatus, XMLHttpRequest) ] ) 返回: jQuery 描述: 载入远程 HTML 文件代码并插入至 DOM 中.version added: 1.0.load( url, [ data ], [ c

【转】jquery 注册事件的方法

原文链接:http://outofmemory.cn/code-snippet/2123/jquery-zhuce-event-method 1.使用事件名来绑定,可用的事件名有 change,click,dblclick,error,focus,focusin,focusout,keydown,keypress,keyup,mousedown,mouseenter,mouseleave,mousemove,mouseout,mouseover,mouseup,resize,scroll,sel

JQuery mouse事件运用方法

mousedown(fn) 在每一个匹配元素的mousedown事件中绑定一个处理函数.      mousedown事件在鼠标在元素上点击后会触发 mousemove(fn)       在每一个匹配元素的mousemove事件中绑定一个处理函数.      mousemove 事件通过鼠标在元素上移动来触发.事件处理函数会被传递一个变量——事件对象,其.clientX 和 .clientY 属性代表鼠标的坐标 mouseout(fn) 在每一个匹配元素的mouseout事件中绑定一个处理函数

jquery 事件 开发方法 总结

转:http://hi.baidu.com/shuanglinwanyu/blog/item/4936af3e40c7993770cf6c9e.html attribute:属性$("p").addclass(css中定义的样式类型); 给某个元素添加样式$("img").attr({src:"test.jpg",title:"test image"}); 给某个元素添加属性/值,参数是map$("input&quo

javascript事件之:jQuery.event.add事件详解

我们已经了解过jQuery.event下的方法,回顾一下 jQuery.event = { global: {}, add: function( elem, types, handler, data, selector ) {}, remove: function( elem, types, handler, selector, mappedTypes ) {}, trigger: function( event, data, elem, onlyHandlers ) {}, dispatch:

jQuery的4种事件绑定方法

jQuery中提供了四种绑定事件的方法,分别是bind.live.delegate.on,对应的解除监听的函数分别是unbind.die.undelegate.off: 一.on()方法(首选方法) on() 方法在被选元素及子元素上添加一个或多个事件处理程序. 自 jQuery 版本 1.7 起,on() 方法是 bind().live() 和 delegate() 方法的新的替代品.该方法给 API 带来很多便利,我们推荐使用该方法,它简化了 jQuery 代码库. 参数: event:必需

jquery之event与originalEvent的关系、event事件对象用法浅析

在jquery中,最终传入事件处理程序的 event 其实已经被 jQuery 做过标准化处理, 其原有的事件对象则被保存于 event 对象的 originalEvent 属性之中, 每个 event 都是 jQuery.Event 的实例 其原型链中保存有六个方法,  代码如下 复制代码 jQuery.Event.prototype = {     preventDefault: function() {         // 取消事件默认行为     },     stopPropagat

完美的jquery事件绑定方法on()

在讲on()方法之前,我们先讲讲在on()方法出现前的那些事件绑定方法: .live() jQuery 1.3新增的live()方法,用法如下: $("#info_table td").live("click",function(){/*显示更多信息*/}); 这里的.live()方法会把click事件绑定到$(document)对象,而且只需要给$(document)绑定一次,然后就能够处理后续动态加载的单元格的单击事件.在接收到任何事件时,$(document)

jQuery 事件 - delegate() 方法 和live()方法

当点击鼠标时,隐藏或显示 p 元素: $("div").delegate("button","click",function(){ $("p").slideToggle(); }); delegate() 方法为指定的元素(属于被选元素的子元素)添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数. 使用 delegate() 方法的事件处理程序适用于当前或未来的元素(比如由脚本创建的新元素). 向未来的元素添加事件处