将文档 keyup 事件过滤到没有选择器的特定元素
Filter document keyup event to specific element without selector
我正在动态创建没有唯一句柄的元素,因此我无法真正构建选择器以传递给 'on' 进行过滤。
根据文档,'on' 似乎也不接受选择器的 jQuery 元素。我不明白为什么不,因为当我可以直接提供相关元素时必须处理字符串选择器(产生开销)。
我是不是漏掉了什么明显的东西?
$(document).on('keyup', elm, function(ev){ console.log( 'keyup on', ev.target ) });
基本上,我只希望在 elm 发出 keyup 事件时触发此事件实例。
编辑
忘记了一些上下文:
- 该元素还不在 DOM 中,它是在内存中创建的,我正在尝试在那里设置所有事件。
- 我尝试将 keyup 事件直接绑定到元素,但它不会触发。不知道为什么。我想可能是因为它还没有出现在 DOM 中。
- 该元素不是 input/textarea,我依赖 contenteditable/user-modify 允许输入。
结论
- 问题是由我的 css 引起的。似乎如果 parent 有 user-modify,child 的 keyup 事件将不会触发。公平地说,user-modify 应该尽可能有针对性,以避免 DOM 编辑。
问题是由我的 css 引起的。似乎如果 parent 有 user-modify,child 的 keyup 事件将不会触发。公平地说,user-modify 应该尽可能有针对性,以避免 DOM 编辑。
我正在动态创建没有唯一句柄的元素,因此我无法真正构建选择器以传递给 'on' 进行过滤。
根据文档,'on' 似乎也不接受选择器的 jQuery 元素。我不明白为什么不,因为当我可以直接提供相关元素时必须处理字符串选择器(产生开销)。
我是不是漏掉了什么明显的东西?
$(document).on('keyup', elm, function(ev){ console.log( 'keyup on', ev.target ) });
基本上,我只希望在 elm 发出 keyup 事件时触发此事件实例。
编辑
忘记了一些上下文:
- 该元素还不在 DOM 中,它是在内存中创建的,我正在尝试在那里设置所有事件。
- 我尝试将 keyup 事件直接绑定到元素,但它不会触发。不知道为什么。我想可能是因为它还没有出现在 DOM 中。
- 该元素不是 input/textarea,我依赖 contenteditable/user-modify 允许输入。
结论
- 问题是由我的 css 引起的。似乎如果 parent 有 user-modify,child 的 keyup 事件将不会触发。公平地说,user-modify 应该尽可能有针对性,以避免 DOM 编辑。
问题是由我的 css 引起的。似乎如果 parent 有 user-modify,child 的 keyup 事件将不会触发。公平地说,user-modify 应该尽可能有针对性,以避免 DOM 编辑。