javascript - jquery 的 "live"函数的问题

标签 javascript jquery

问题

这很好用:

$('#edit_curriculum .generated').children().blur(function(){
    console.log(this);
});

但这不是:

$('#edit_curriculum .generated').children().live('blur', function(){
    console.log(this);
});

obs:函数包装在 $(document).ready 事件中。


输出

工作:

<input type=​"text" name=​"phones[]​" class=​"medium phone valid">

不工作:

Uncaught Syntax error, unrecognized expression: )
k.errorjquery.js:17
k.filterjquery.js:17
kjquery.js:17
c.querySelectorAll.kjquery.js:17
k.matchesSelectorjquery.js:17
f.extend.filterjquery.js:17
f.fn.extend.isjquery.js:17
f.fn.extend.closestjquery.js:17
Njquery.js:16
f.event.handlejquery.js:17
f.event.add.k.i.handle.kjquery.js:16
f.event.triggerjquery.js:17
ejquery.js:17

最佳答案

来自 jQuery live()文档:

Attach a handler to the event for all elements which match the current selector, now and in the future.

此函数适用于选择器,而不是元素集合。我会使用以下语法:

 $('#edit_curriculum .generated > *').live('blur', function(){
   console.log(this);
 });

此选择器将获得任何直接子项(因此您之前拥有的),但使用selection 而不是traversal。这应该允许您按预期使用 live()。希望这对您有所帮助!

关于javascript - jquery 的 "live"函数的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7059809/

相关文章:

javascript - JSTS : How to union of more then two polygons in openlayer2 using JSTS library

javascript - 未捕获的类型错误 : callback is not a function

javascript - 修改 jQuery 以仅根据屏幕宽度触发特定的 CSS

javascript - JavaScript 中的所有函数本质上都是方法吗?

javascript - 在 Java 中调用 Javascript 事件

javascript - 使用 ajax 的表单 - 消息表单 php,无需刷新页面

jquery - 是否需要显示 div 才能用作航路点?

javascript - 如何定义一个函数来修改 Ajax 请求上提交到服务器的数据

javascript - 如何在没有页面的情况下在javascript或jquery中获取当前url

jQuery 可以 removeClass 但不能为具有 .on ("click"的元素添加类)