为了账号安全,请及时绑定邮箱和手机立即绑定

以下内容是关于jQuery中live函数的问题,有无大佬了解的呢?

以下内容是关于jQuery中live函数的问题,有无大佬了解的呢?

牛魔王的故事 2021-11-03 07:07:25
$("#edit"+inId+inFd).focus().live("blur",function(){alert(222); });为什么浏览器老提示TypeError: $(...).focus(...).live is not a function?谢谢大神了jQuery的版本是jquery-2.0.0.js
查看完整描述

2 回答

?
富国沪深

TA贡献1790条经验 获得超9个赞

jQuery中live函数:
  给指定id或class的元素绑定(bind)事件时,对于改变或新加的元素,事件不会起作用,这时我们就要用live函数,它可以让子元素继承父元素的事件。
  事件委托
  live() 方法能对一个还没有添加进DOM的元素有效,是由于使用了事件委托:绑定在祖先元素上的事件处理函数可以对在后代上触发的事件作出回应。传递给 .live() 的事件处理函数不会绑定在元素上,而是把他作为一个特殊的事件处理函数,绑定在 DOM 树的根节点上。在我们的例子中,当点击新的元素后,会依次发生下列步骤:
  生成一个click事件传递给 <div> 来处理
  由于没有事件处理函数直接绑定在 <div> 上,所以事件冒泡到DOM树上
  事件不断冒泡一直到DOM树的根节点,默认情况下上面绑定了这个特殊的事件处理函数。
  执行由 .live() 绑定的特殊的 click 事件处理函数。
  这个事件处理函数首先检测事件对象的 target 来确定是不是需要继续。这个测试是通过检测 $(event.target).closest('.clickme') 能否找到匹配的元素来实现的。
  如果找到了匹配的元素,那么调用原始的事件处理函数。
  由于只有在事件发生时才会在上面的第五步里做测试,因此在任何时候添加的元素都能够响应这个事件。

查看完整回答
反对 回复 2021-11-09
?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

试试这个:
$("#edit"+inId+inFd).live('focus blur', function(event) {
if (event.type == 'focus') {
// do something on focus
} else {
// do something on blur
}
});



查看完整回答
反对 回复 2021-11-09
  • 2 回答
  • 0 关注
  • 254 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信