这很好用:
$('#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
答案 0 :(得分:7)
来自jQuery live()文档:
为现在和将来与当前选择器匹配的所有元素附加处理程序。
此函数适用于selector
,而不是元素集合。我会使用以下语法:
$('#edit_curriculum .generated > *').live('blur', function(){
console.log(this);
});
这个选择器会获得任何直接的孩子(因此你以前拥有的),但selection
而不是traversal
。这应该允许您按预期使用live()
。希望这有帮助!