Focus表示当前选择用于接收输入的图形用户界面的组件。
我正在使用 Angular 16 - 父组件消耗子组件 - 父组件如下 父组件.html 我正在使用 Angular 16 - 父组件消耗子组件 - 父组件如下 parent.component.html <app-gotoitem #initialFocusComponent (initialFocusNativeElementFocus)="focusHandler($event)"></app-gotostudent> parent.component.ts @ViewChildren('initialFocusComponent') initialFocusComponents: QueryList<any>; ... focusHandler(e) { console.log("do something"); } ... this.initialFocusComponents.first.setFocus(); 在我的子组件(gotoitem)中 child.component.ts @Output() initialFocusNativeElementFocus = new EventEmitter(); @ViewChild('initialFocus') initialFocus: ElementRef; ... fromEvent(this.initialFocus.nativeElement, 'focus') //(B) .pipe(take(1)) .subscribe(elem => { this.initialFocusNativeElementFocus.emit(); //(C) <--this doesn't get executed }); ... public setFocus(): void { this.initialFocus.nativeElement.focus(); //(A) } 但是,在子进程执行“.focus()”语句(A)之后,“focus”事件监听器(B)不会捕获“focus”事件 - 因此会出现“emit()”( C) 永远不会被执行。 我可以看到焦点事件处理程序附加到所需的 HTML 元素(this.initialFocus.nativeElement 指向,这是一个 kendo-dropdownlist) - 但是焦点事件侦听器附加了两个事件(第一个指的是“文档”)元素 [通过 zone.js 设置],第二个指的是 this.initialFocus.nativeElement 指向的元素) - 见下文 如果我手动删除“文档”事件处理程序并将焦点放在有问题的元素上,“焦点”处理程序将捕获该事件并执行“emit()” 通常如何处理这种情况 - 无论“文档”事件处理程序是否存在,我都需要定义的焦点事件也运行 - 或者我是否需要删除“文档”事件处理程序 - 如果是这样怎么办? 非常感谢 据我所知,kendo-dropdownlist无法接收焦点(并且不应该按照其设计)。在开发工具控制台中输入: setInterval(() => console.log(document.activeElement), 1000); 然后聚焦所需的元素,您将看到span元素已聚焦。
我在 flutter 中创建了一个表单,在验证过程中(单击按钮时)我希望它向上滚动到空字段。我尝试了很多方法,包括FocusNode,因为有很多
我正在制作一个Android应用程序,用户可以同时播放许多声音并设置各自的音量。在代码中,我为每个声音播放创建了一个 exo 播放器的单独实例。
我在不丢失功能的情况下将其归结为尽可能少的代码。你必须在 Firefox 中运行它,Chrome 已经报告并确认了涉及的错误。 如果您单击第二个项目 (&...
Android EditText 在验证后更改焦点并在对话框中显示错误
我有一个带有 3 个 EditText 字段的简单 Activity。 用户、通行证、确认 在“用户”字段中输入内容并且该人在键盘上单击“下一步”后,我有一个 setOnFocusChangeListener...
我有以下代码,可以在 tvOS 17.5 的模拟器中构建和运行。 我正在尝试在 GameScene(即 SKScene)内的两个 SKNode 之间导航焦点。 我无法拥有任何...
我在这里的其他地方读到,要在文本框中捕获“Enter”击键并像按下按钮一样使用它,我应该将表单的 KeyPreview 属性设置为 true 并检查 KeyDow 的值...
我有一个简单的ViewPager2,由2个Fragment组成 FragmentsList.add(new FakeFragment()); FragmentsList.add(new TextFragment()); viewPagerAdapter = 新 ViewPagerAdapter(这,
我在预览中得到打印输出,在 iPhone 上焦点已更改为 true,背景更改为靛蓝,但在 iPad 上根本没有打印任何内容,背景也没有更改。我不明白为什么...
Electron BrowserWindow 在聚焦时显示任务栏
我的应用程序是全屏游戏的覆盖层(alwaysOnTop),当用户单击我的覆盖层时,它会获得焦点并在游戏顶部显示任务栏。对焦很好,但是...
我使用纯 JavaScript(无 JQuery 等)来显示半模式对话框,其中包含一个小表单。 我目前设置的方式,相同的处理程序将显示不同的直径...
我有一个简单的输入和一个 SVG 图片,它将输入文本发送到服务器并立即将文本添加到 document.createElement('div')...等 有没有办法让我的 SVG 图片不可聚焦,这样就可以了
如何手动设置 Shadow DOM(Lit Web Component)中元素的焦点
我正在构建一个选择/下拉组件作为 Lit Web 组件。为了具有一致的样式,这不使用本机选择。我正在使用 div 并添加逻辑,让它们出现在何时何地
我在 Android 应用程序中使用 Google Mobile Vision API 来扫描二维码。扫描绝对没问题。 在某些手机中,焦点不正确。在 Galaxy S4 中,我必须将手机移回...
如何在 React Native 中正确地将目的地传递到 TVFocusGuideView
我在为我正在开发的电视应用程序使用 React Native 中的 TVFocusGuideView 进行焦点重定向时遇到问题。基本上我的应用程序中有一个侧边栏,当用户查看内容时,他们是
考虑一个 QWidget 窗口,当鼠标离开该窗口时会触发什么事件? 该窗口上有 QLineEdit 字段,并且它们有用于输入建议的完成器 (QCompleter)。实际...
Vue 3 和 Vitest 焦点输入在组合 API 的测试中将 document.activeElement 设置为 HTMLBodyElement
给定一个 Vue 3 组件 <question vote="0"> <p>给定一个 Vue 3 组件</p> <pre><code><template> <input id="input" type="text" @focus="handleOnFocus($event)" /> </template> <script setup type="ts"> const handleOnFocus = () => { console.log('Component document.activeElement:', document.activeElement) } </script> </code></pre> <p>并测试:</p> <pre><code>import { mount } from '@vue/test-utils' import { expect } from 'vitest' import AarghOmg from './AarghOmg.vue' describe('AarghOmg', () => { let wrapper: any beforeEach(() => { wrapper = mount<typeof AarghOmg>(AarghOmg, { attachTo: document.body }) }) it('outputs activeElement', () => { wrapper.find('#input').trigger('focus') console.log('Test document.body.innerHTML:', document.body.innerHTML) expect(true).toBe(true) }) }) </code></pre> <p>控制台.log</p> <pre><code>Component document.activeElement: HTMLBodyElement {} Test document.body.innerHTML: <div data-v-app=""><input id="input" type="text"></div> </code></pre> <p>我希望 <pre><code>document.activeElement</code></pre> 成为输入,而不是 body 元素。这在浏览器中可以正常工作,因此包装器和测试框架存在问题。</p> </question> <answer tick="false" vote="0"> <p>看起来 Vitest 并不实际与 DOM 内部交互,所以</p> <pre><code>wrapper.find('#input').trigger('focus') </code></pre> <p> 正在触发 Vue 组件上的 @focus 事件,但实际上并未将焦点设置在 JS Dom 中的 DOM 元素上。 </p> <p>解决方法是重构我们的代码,使其具有一个映射到聚焦状态的变量和一个输入<pre><code>ref</code></pre>,然后触发事件,例如</p> <p>Vue 3 组件</p> <pre><code><template> <input id="input" ref="input" type="text" @focus="handleOnFocus()" /> <button id="button" @click="blurInput()">Blur focus</button> <div v-if="isFocussed" id="is-focussed">Is focussed!</div> </template> <script setup type="ts"> const input = ref(null) const isFocussed = ref(false) const handleOnFocus = () => { isFocussed.value = true } const blurInput = () => { if (isFocussed) { isFocussed.value = false input.value.blur() } } </script> </code></pre> <p>并测试</p> <pre><code>import { mount } from '@vue/test-utils' import { expect } from 'vitest' import Hooray from './Hooray.vue' describe('Hooray', () => { let wrapper: any beforeEach(() => { wrapper = mount<typeof Hooray>(Hooray) }) describe('input focus/blur interaction', () => { it('and no interaction, input should not be focussed', () => { expect(wrapper.find('#is-focussed').exists()).toBeFalsy() }) it('and input focus triggered, input should be focussed', async () => { await wrapper.find('#input').trigger('focus') expect(wrapper.find('#is-focussed').exists()).toBeTruthy() }) it('and button clicked, input should not be focussed', async () => { await wrapper.find('#input').trigger('focus') await wrapper.find('#button').trigger('click') expect(wrapper.find('#is-focussed').exists()).toBeFalsy() }) }) }) </code></pre> </answer> </body></html>
我有一个简单的表格和面板中的一个按钮。 当我单击表格单元格时,我可以对其进行编辑,但该单元格没有焦点。 我希望能够保存单元格内容(如果它被...更改)
嗨,我真的从来没有遇到过这个问题,但今天我真的不明白为什么焦点不起作用 - 我尝试在不使用 js 的情况下构建一个自定义开关 --- 它看起来不错并且与鼠标...
React.js -- 输入字段 -- 输入字母“c”或“n”时失去焦点
所以我在 MaterialUI 的 MenuItem 内有一个输入字段,并且该 MenuItem 在 Menu 内。由于某些奇怪的原因,只有在输入字母“c”或&q时,输入字段才会失去焦点......