我需要将焦点设置在可排序列表的输入和文本区域元素上。
这是我的代码(1)。
a) 当我加载列表时,它工作正常,因为它为每个输入添加了一个监听器。
b) 当我向列表中添加一个新元素时,它会复制监听器。
应该如何避免呢?
也许尝试使用事件委托(delegate)在 body 上使用单个监听器?
有什么想法吗?
谢谢
(1)
setTimeout(function () {
var setFocus = function () {
$('.ui-sortable').find('input, textarea').click(function () {
$(this).focus();
});
};
$('.ui-sortable').on('DOMNodeInserted', setFocus);
setFocus();
}, 0);
最佳答案
这应该有效:
$('body').on('.ui-sortable input, .ui-sortable textarea', 'click', function () {
$(this).focus();
});
关于javascript - 避免重复听众,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12750892/