focus 相关问题

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元素已聚焦。

回答 1 投票 0

在颤振中验证期间在空字段中自动滚动

我在 flutter 中创建了一个表单,在验证过程中(单击按钮时)我希望它向上滚动到空字段。我尝试了很多方法,包括FocusNode,因为有很多

回答 2 投票 0

有没有办法让exo玩家不互相躲避对方的音量?

我正在制作一个Android应用程序,用户可以同时播放许多声音并设置各自的音量。在代码中,我为每个声音播放创建了一个 exo 播放器的单独实例。

回答 1 投票 0

此示例中复选框及其标签的行为不同,有人能找出原因吗?

我在不丢失功能的情况下将其归结为尽可能少的代码。你必须在 Firefox 中运行它,Chrome 已经报告并确认了涉及的错误。 如果您单击第二个项目 (&...

回答 1 投票 0

Android EditText 在验证后更改焦点并在对话框中显示错误

我有一个带有 3 个 EditText 字段的简单 Activity。 用户、通行证、确认 在“用户”字段中输入内容并且该人在键盘上单击“下一步”后,我有一个 setOnFocusChangeListener...

回答 1 投票 0

聚焦 SKNode

我有以下代码,可以在 tvOS 17.5 的模拟器中构建和运行。 我正在尝试在 GameScene(即 SKScene)内的两个 SKNode 之间导航焦点。 我无法拥有任何...

回答 1 投票 0

如何判断窗体上的哪个控件获得焦点?

我在这里的其他地方读到,要在文本框中捕获“Enter”击键并像按下按钮一样使用它,我应该将表单的 KeyPreview 属性设置为 true 并检查 KeyDow 的值...

回答 5 投票 0

EditText 在 ViewPager2 内失去光标焦点

我有一个简单的ViewPager2,由2个Fragment组成 FragmentsList.add(new FakeFragment()); FragmentsList.add(new TextFragment()); viewPagerAdapter = 新 ViewPagerAdapter(这,

回答 1 投票 0

SwiftUI 为什么可聚焦在 iPad 上不起作用?

我在预览中得到打印输出,在 iPhone 上焦点已更改为 true,背景更改为靛蓝,但在 iPad 上根本没有打印任何内容,背景也没有更改。我不明白为什么...

回答 1 投票 0

Electron BrowserWindow 在聚焦时显示任务栏

我的应用程序是全屏游戏的覆盖层(alwaysOnTop),当用户单击我的覆盖层时,它会获得焦点并在游戏顶部显示任务栏。对焦很好,但是...

回答 4 投票 0

JS - 如何避免通用点击处理程序窃取焦点

我使用纯 JavaScript(无 JQuery 等)来显示半模式对话框,其中包含一个小表单。 我目前设置的方式,相同的处理程序将显示不同的直径...

回答 2 投票 0

如何使元素不从输入中窃取焦点?

我有一个简单的输入和一个 SVG 图片,它将输入文本发送到服务器并立即将文本添加到 document.createElement('div')...等 有没有办法让我的 SVG 图片不可聚焦,这样就可以了

回答 2 投票 0

如何手动设置 Shadow DOM(Lit Web Component)中元素的焦点

我正在构建一个选择/下拉组件作为 Lit Web 组件。为了具有一致的样式,这不使用本机选择。我正在使用 div 并添加逻辑,让它们出现在何时何地

回答 1 投票 0

无法使用Mobile Vision API聚焦二维码

我在 Android 应用程序中使用 Google Mobile Vision API 来扫描二维码。扫描绝对没问题。 在某些手机中,焦点不正确。在 Galaxy S4 中,我必须将手机移回...

回答 1 投票 0

如何在 React Native 中正确地将目的地传递到 TVFocusGuideView

我在为我正在开发的电视应用程序使用 React Native 中的 TVFocusGuideView 进行焦点重定向时遇到问题。基本上我的应用程序中有一个侧边栏,当用户查看内容时,他们是

回答 1 投票 0

如何判断鼠标是否真的离开了QWidget?

考虑一个 QWidget 窗口,当鼠标离开该窗口时会触发什么事件? 该窗口上有 QLineEdit 字段,并且它们有用于输入建议的完成器 (QCompleter)。实际...

回答 1 投票 0

Vue 3 和 Vitest 焦点输入在组合 API 的测试中将 document.activeElement 设置为 HTMLBodyElement

给定一个 Vue 3 组件 <question vote="0"> <p>给定一个 Vue 3 组件</p> <pre><code>&lt;template&gt; &lt;input id=&#34;input&#34; type=&#34;text&#34; @focus=&#34;handleOnFocus($event)&#34; /&gt; &lt;/template&gt; &lt;script setup type=&#34;ts&#34;&gt; const handleOnFocus = () =&gt; { console.log(&#39;Component document.activeElement:&#39;, document.activeElement) } &lt;/script&gt; </code></pre> <p>并测试:</p> <pre><code>import { mount } from &#39;@vue/test-utils&#39; import { expect } from &#39;vitest&#39; import AarghOmg from &#39;./AarghOmg.vue&#39; describe(&#39;AarghOmg&#39;, () =&gt; { let wrapper: any beforeEach(() =&gt; { wrapper = mount&lt;typeof AarghOmg&gt;(AarghOmg, { attachTo: document.body }) }) it(&#39;outputs activeElement&#39;, () =&gt; { wrapper.find(&#39;#input&#39;).trigger(&#39;focus&#39;) console.log(&#39;Test document.body.innerHTML:&#39;, document.body.innerHTML) expect(true).toBe(true) }) }) </code></pre> <p>控制台.log</p> <pre><code>Component document.activeElement: HTMLBodyElement {} Test document.body.innerHTML: &lt;div data-v-app=&#34;&#34;&gt;&lt;input id=&#34;input&#34; type=&#34;text&#34;&gt;&lt;/div&gt; </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(&#39;#input&#39;).trigger(&#39;focus&#39;) </code></pre> <p> 正在触发 Vue 组件上的 @focus 事件,但实际上并未将焦点设置在 JS Dom 中的 DOM 元素上。 </p> <p>解决方法是重构我们的代码,使其具有一个映射到聚焦状态的变量和一个输入<pre><code>ref</code></pre>,然后触发事件,例如</p> <p>Vue 3 组件</p> <pre><code>&lt;template&gt; &lt;input id=&#34;input&#34; ref=&#34;input&#34; type=&#34;text&#34; @focus=&#34;handleOnFocus()&#34; /&gt; &lt;button id=&#34;button&#34; @click=&#34;blurInput()&#34;&gt;Blur focus&lt;/button&gt; &lt;div v-if=&#34;isFocussed&#34; id=&#34;is-focussed&#34;&gt;Is focussed!&lt;/div&gt; &lt;/template&gt; &lt;script setup type=&#34;ts&#34;&gt; const input = ref(null) const isFocussed = ref(false) const handleOnFocus = () =&gt; { isFocussed.value = true } const blurInput = () =&gt; { if (isFocussed) { isFocussed.value = false input.value.blur() } } &lt;/script&gt; </code></pre> <p>并测试</p> <pre><code>import { mount } from &#39;@vue/test-utils&#39; import { expect } from &#39;vitest&#39; import Hooray from &#39;./Hooray.vue&#39; describe(&#39;Hooray&#39;, () =&gt; { let wrapper: any beforeEach(() =&gt; { wrapper = mount&lt;typeof Hooray&gt;(Hooray) }) describe(&#39;input focus/blur interaction&#39;, () =&gt; { it(&#39;and no interaction, input should not be focussed&#39;, () =&gt; { expect(wrapper.find(&#39;#is-focussed&#39;).exists()).toBeFalsy() }) it(&#39;and input focus triggered, input should be focussed&#39;, async () =&gt; { await wrapper.find(&#39;#input&#39;).trigger(&#39;focus&#39;) expect(wrapper.find(&#39;#is-focussed&#39;).exists()).toBeTruthy() }) it(&#39;and button clicked, input should not be focussed&#39;, async () =&gt; { await wrapper.find(&#39;#input&#39;).trigger(&#39;focus&#39;) await wrapper.find(&#39;#button&#39;).trigger(&#39;click&#39;) expect(wrapper.find(&#39;#is-focussed&#39;).exists()).toBeFalsy() }) }) }) </code></pre> </answer> </body></html>

回答 0 投票 0

JTable 单元格确实通过鼠标单击获得焦点

我有一个简单的表格和面板中的一个按钮。 当我单击表格单元格时,我可以对其进行编辑,但该单元格没有焦点。 我希望能够保存单元格内容(如果它被...更改)

回答 1 投票 0

CSS - 焦点在任何浏览器上都不起作用为什么?

嗨,我真的从来没有遇到过这个问题,但今天我真的不明白为什么焦点不起作用 - 我尝试在不使用 js 的情况下构建一个自定义开关 --- 它看起来不错并且与鼠标...

回答 1 投票 0

React.js -- 输入字段 -- 输入字母“c”或“n”时失去焦点

所以我在 MaterialUI 的 MenuItem 内有一个输入字段,并且该 MenuItem 在 Menu 内。由于某些奇怪的原因,只有在输入字母“c”或&q时,输入字段才会失去焦点......

回答 2 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.