jQuery中live函数的问题
$("#edit"+inId+inFd).focus().live("blur",function(){alert(222);});为什么浏览器老提示TypeError:...
$("#edit"+inId+inFd).focus().live("blur",function(){
alert(222);
});
为什么浏览器老提示
TypeError: $(...).focus(...).live is not a function?
谢谢大神了
jQuery的版本是jquery-2.0.0.js 展开
alert(222);
});
为什么浏览器老提示
TypeError: $(...).focus(...).live is not a function?
谢谢大神了
jQuery的版本是jquery-2.0.0.js 展开
3个回答
展开全部
jq 1.9 以上版本,废除了 live,用$.on()代替
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
试试这个:
$("#edit"+inId+inFd).live('focus blur', function(event) {
if (event.type == 'focus') {
// do something on focus
} else {
// do something on blur
}
});
$("#edit"+inId+inFd).live('focus blur', function(event) {
if (event.type == 'focus') {
// do something on focus
} else {
// do something on blur
}
});
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
jQuery中live函数:
给指定id或class的元素绑定(bind)事件时,对于改变或新加的元素,事件不会起作用,这时我们就要用live函数,它可以让子元素继承父元素的事件。
事件委托
live() 方法能对一个还没有添加进DOM的元素有效,是由于使用了事件委托:绑定在祖先元素上的事件处理函数可以对在后代上触发的事件作出回应。传递给 .live() 的事件处理函数不会绑定在元素上,而是把他作为一个特殊的事件处理函数,绑定在 DOM 树的根节点上。在我们的例子中,当点击新的元素后,会依次发生下列步骤:
生成一个click事件传递给 <div> 来处理
由于没有事件处理函数直接绑定在 <div> 上,所以事件冒泡到DOM树上
事件不断冒泡一直到DOM树的根节点,默认情况下上面绑定了这个特殊的事件处理函数。
执行由 .live() 绑定的特殊的 click 事件处理函数。
这个事件处理函数首先检测事件对象的 target 来确定是不是需要继续。这个测试是通过检测 $(event.target).closest('.clickme') 能否找到匹配的元素来实现的。
如果找到了匹配的元素,那么调用原始的事件处理函数。
由于只有在事件发生时才会在上面的第五步里做测试,因此在任何时候添加的元素都能够响应这个事件。
给指定id或class的元素绑定(bind)事件时,对于改变或新加的元素,事件不会起作用,这时我们就要用live函数,它可以让子元素继承父元素的事件。
事件委托
live() 方法能对一个还没有添加进DOM的元素有效,是由于使用了事件委托:绑定在祖先元素上的事件处理函数可以对在后代上触发的事件作出回应。传递给 .live() 的事件处理函数不会绑定在元素上,而是把他作为一个特殊的事件处理函数,绑定在 DOM 树的根节点上。在我们的例子中,当点击新的元素后,会依次发生下列步骤:
生成一个click事件传递给 <div> 来处理
由于没有事件处理函数直接绑定在 <div> 上,所以事件冒泡到DOM树上
事件不断冒泡一直到DOM树的根节点,默认情况下上面绑定了这个特殊的事件处理函数。
执行由 .live() 绑定的特殊的 click 事件处理函数。
这个事件处理函数首先检测事件对象的 target 来确定是不是需要继续。这个测试是通过检测 $(event.target).closest('.clickme') 能否找到匹配的元素来实现的。
如果找到了匹配的元素,那么调用原始的事件处理函数。
由于只有在事件发生时才会在上面的第五步里做测试,因此在任何时候添加的元素都能够响应这个事件。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询