本文目录
- jQuery()中,on()方法
- jquery中on()方法和live()方法的区别
- jquery on绑定事件是什么意思
- jQuery on方法传递参数示例
- jQuery中的.on和.delegate的区别
- jquery on 的用法
- jQuery的on()事件问题
- jQuery on()方法绑定动态元素的点击事件实例代码浅析
jQuery()中,on()方法
概述
1、#Grid1Table不是#conut的父节点,p标签是#logout的父节点
2、代码写法:
$(’p’).on(’click’, ’#count’, function() {
//function code here.
});
解析
1、p包裹a标签(id = logout),所以logout的父节点(父标签)为p(没有标注id或者class)
《p》《a href=’#’ id=’logout’》【退出】《/a》《/p》
2、$(“#logout“).on(’click’,function() 方法要求参数为非随动变量(全局变量),所以#logout为不可行参数,且由于代码没有贴全所以这里我先断定#Grid1Table为非父节点,而p为#logout父节点,所以这里可以改成:-jquery on
$(’p’).on(’click’, ’#count’, function() {
//function code here.
});
拓展内容
juqery on()方法详解
定义和用法
on() 方法在被选元素及子元素上添加一个或多个事件处理程序。
自 jQuery 版本 1.7 起,on() 方法是 bind()、live() 和 delegate() 方法的新的替代品。该方法给 API 带来很多便利,我们推荐使用该方法,它简化了 jQuery 代码库。-jquery on
注意:使用 on() 方法添加的事件处理程序适用于当前及未来的元素(比如由脚本创建的新元素)。
提示:如需移除事件处理程序,请使用 off() 方法。
提示:如需添加只运行一次的事件然后移除,请使用 one() 方法。
语法
$(selector).on(event,childSelector,data,function)
参数
event 必需。规定要从被选元素移除的一个或多个事件或命名空间。由空格分隔多个事件值,也可以是数组。必须是有效的事件。
childSelector 可选。规定只能添加到指定的子元素上的事件处理程序(且不是选择器本身,比如已废弃的 delegate() 方法)。
data 可选。规定传递到函数的额外数据。
function 可选。规定当事件发生时运行的函数。
jquery中on()方法和live()方法的区别
一、作用不同
1、on():在被选元素及子元素上添加一个或多个事件处理程序。
2、live():为被选元素附加一个或多个事件处理程序,并规定当这些事件发生时运行的函数。
二、触发条件不同
1、on():使用 on() 方法添加的事件处理程序适用于当前及未来的元素(比如由脚本创建的新元素)。
2、live():通过 live() 方法附加的事件处理程序适用于匹配选择器的当前及未来的元素(比如由脚本创建的新元素)。
三、语法不同
1、on():$(selector).on(event,childSelector,data,function)childSelector可选。规定只能添加到指定的子元素上的事件处理程序(且不是选择器本身,比如已废弃的 delegate() 方法)。-jquery on
2、live():$(selector).live(event,data,function),其中event必需。规定附加到元素的一个或多个事件。由空格分隔多个事件。必须是有效的事件。
参考资料来源:百度百科-jQuery
jquery on绑定事件是什么意思
on指的是事件委托,举个例子,
$(document).on(“click“, “.ontest“, function () {
//......
});
假设你的.ontest一开始不存在DOM结构当中,也就是html里面,如果你直接click(function () {});的话,事件是无法成功绑定的,而用on委托给document的话,在事件冒泡的时候,就可以成功出发绑定的事件。
-jquery on
jQuery on方法传递参数示例
教你如何给
jQuery
on方法绑定的函数传递参数,代码如下:
复制代码
代码如下:
$(“.loadingFlower“).on(“click“,’’,{name:“123“,id:“234“,tel:“345“},callback)
function
callback(event){
console.log(event.data.name);
//参数1
=》123
console.log(event.data.id);
//参数2
=》234
console.log(event.data.tel);
//参数3
=》345
}
-jquery on
jQuery中的.on和.delegate的区别
两者区别是seleter和events顺序不同
delegate和on方法被选元素的子元素必须是“合法的“子元素。on(events,[selector],[data],fn),参数[selector]是可选,
一个选择器字符串用于过滤器的触发事件的选择器元素的后代。
delegate的selector是必需的。
-jquery on
jquery on 的用法
.on()方法事件处理程序到当前选定的jQuery对象中的元素。
.on( events [, selector ] [, data ], handler(eventObject) )
events:类型: String
一个或多个空格分隔的事件类型和可选的命名空间,或仅仅是命名空间,比如“click“, “keydown.myPlugin“, 或者 “.myPlugin“。
selector:类型: String
一个选择器字符串,用于过滤出被选中的元素中能触发事件的后代元素。如果选择器是 null 或者忽略了该选择器,那么被选中的元素总是能触发事件。
data:类型: Anything
当一个事件被触发时,要传递给事件处理函数的event.data。
handler(eventObject):类型: Function()
事件被触发时,执行的函数。若该函数只是要执行return false的话,那么该参数位置可以直接简写成 false。
-jquery on
jQuery的on()事件问题
当你在给一个元素绑定事件时,这个元素必须存在,否则就绑定失败。很明显,$(“.sb1 》 p“)在事前是不存在的(是通过点击按钮才添加进去的),所以事件无法绑定,点击也就无效了。解决办法一是动态绑定事件,就是在点击按钮添加p的时候一并把事件绑定进去;方法二就是采用事件委托,把p的事件冒泡给父元素.sb1,即 $(“.sb1“).on(“click“,“p“,function(){...,这样的话即使sb1中是空的也不妨碍事件绑定了(新添加的p也会自动触发click事件)。根据你这代码的情况,建议使用方法二。
-jquery on
jQuery on()方法绑定动态元素的点击事件实例代码浅析
之前就一直受这个问题的困扰,在jQuery1.7版本之后添加了on方法,之前就了解过,其优越性高于live(),bind(),delegate()等方法,在此之前项目中想用这个来测试结果发现,居然动态生成的标签点击了没反应,而live方法却能够支持,于是乎到处查资料,问网友,结果找了好久在一篇文章中终于找到了答案。。。
jQuery
使用on绑定动态生成的元素时,不能直接用该对象操作,而是选择其非动态生成的父节点然后再找到本身才能达到效果。大家看看源码就知道了。生成的按钮基数项on方法点击无效live方法有效。
比如页面上有下边两个元素:
《input
type=“button“
name=“addbtn“
value=“按钮添加“
/》
《div
id=“test“》
《/div》
使用下边的jQuery代码大家可以对比看看区别:
$(function
()
{
var
a
=
1,
$_div
=
$(’#test’);
$(’input[name=addbtn]’).on(’click’,
function
()
{
$_div.append(’《input
type=“button“
name=“test’
+
a
+
’“
value=“按钮’
+
a
+
’“/》’);
a++;
});
//偶数项点击事件
$_div.on(’click’,
’input[name^=test]:even’,
function
()
{
alert(’我是有效的on方法,你能看见我吗:’
+
this.value);
});
//奇数项绑定的点击事件
发现点击无效,而是用live方法却能够支持
$(’input[name^=test]:odd’).on(’click’,
function
()
{
alert(’我是无效的on方法,你不能看见我’);
});
//奇数项绑定的点击事件
发现点击无效,而是用live方法却能够支持
$(’input[name^=test]:odd’).live(’click’,
function
()
{
alert(’我是live方法,你能看见我吗:’
+
this.value);
});
});
以上所述是小编给大家介绍的jQuery
on()方法绑定动态元素的点击事件的相关知识,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
-jquery on