DOM(文档对象模型)事件允许事件驱动的编程语言在DOM树内的元素节点上注册各种事件处理程序/侦听器。
我有一个表格,我想在双击某列时隐藏某列。 隐藏列的代码实际上遍布 Stack Overflow。我所需要的只是关于如何/在哪里添加 ondblclick e 的提示...
检测节点何时被删除(或因为父节点被删除而从 DOM 中删除)
我想检测节点(例如nodeX)何时不再可用,要么是因为它被删除了,要么是因为它的父节点(或其父节点)被删除了。 目前为止我能想到的就是用Muta...
我想在特定页面使用 JavaScript 禁用 Chrome 扩展程序中的 Enter 键。例如:在登录页面上,用户不应按 Enter 登录,而应单击“登录”按钮...
如何知道点击事件是否是用户生成的? (他们使用鼠标)。 相反的是由一段 JavaScript 触发的点击事件。 在显示
Blazor App(服务器渲染)-> 处理 DOM 对象大小更改的服务
Javascript 不是我最强大的部分,绝对不与 Blazor 结合使用,但与 Google 和一些 AI 合作,获得了一个事件侦听器,如果浏览器大小发生变化,该事件侦听器可以在我的 Blazor 应用程序上运行代码。 不...
我有一个 React 组件,它显示用户数据并提供就地编辑数据的选项。 当我单击编辑按钮时,会触发表单提交操作。 我已标记“编辑”按钮...
我只是在使用 DOM 和 Javascript 来玩弄事件监听器,并注意到了这一点: 函数链(消息){ console.log(消息,事件); } 函数 onClick() { 被锁起来('身体被清除了...
我有一个用于自定义复选框输入的模板: 我有一个用于自定义复选框输入的模板: <label *ngIf="grouped" class="field-check" [class.field-error]="errors" [class.no-events]="readonly"> <ng-container [ngTemplateOutlet]="inputTmp" [ngTemplateOutletContext]="{}"></ng-container> <ng-container *ngIf="labeled"> <span *ngIf="!labelTemplate" class="field-check--slabel" [ngClass]="inxs" [innerHTML]="label"></span> <div *ngIf="labelTemplate" class="field-check--temp"> <ng-container [ngTemplateOutlet]="labelTemplate" [ngTemplateOutletContext]="{}"></ng-container> </div> </ng-container> </label> <div *ngIf="!grouped" class="field-check" [class.no-events]="readonly"> <ng-container [ngTemplateOutlet]="inputTmp" [ngTemplateOutletContext]="{}"></ng-container> <span *ngIf="!labelTemplate" [ngClass]="inxs" [innerHTML]="label"></span> <div *ngIf="labelTemplate" class="field-check--temp" [ngClass]="inxs"> <ng-container [ngTemplateOutlet]="labelTemplate" [ngTemplateOutletContext]="{}"></ng-container> </div> </div> <ng-template #inputTmp> <div class="ultim-checkbox" [class.readonly]="readonly || disabled" [class.checked]="checked" [class.intermediate]="intermediate" (click)="toggleCheck($event)"> <input type="checkbox" tabindex="0" [required]="required" [ngModel]="value" [disabled]="disabled" [attr.intermediate]="intermediate || null" #fieldInput="ngModel" #cb> <span><i class="ico" [ngClass]="{ 'i-check-fat': !intermediate, 'i-minus-fat': intermediate }"></i></span> </div> </ng-template> 当单击标签(HTML 元素“label”或包含复选框标签的 span 元素)时,一切都会按预期进行。当直接点击“ico”图标时,点击事件会被触发两次。结果是该复选框明显保持不变,因为它在同一人类交互中被设置为两个相反的值。 event.target 第一个事件是“.ico”元素,第二个事件的目标是实际隐藏的输入元素。 这是组件的代码 public toggleCheck(event: MouseEvent): any { if ( this.checkboxGroup ) { this.checkboxGroup.addOrRemove(this.value); } else { this.value = !this.value; } this.intermediate = false; } 这是输入元素的 CSS 代码(如果有帮助的话) .field-check .ultim-checkbox input { position: absolute; -webkit-appearance: none; appearance: none; width: 1px; height: 1px; z-index: 0; } 如果我添加 event.stopPropagation() 或 event.preventDefault() 那么 change 事件将完全停止工作: <!-- doSomething is never called --> <custom-checkbox (change)="doSomething($event)"></custom-checkbox> 虽然复选框明显发生变化,但缺少的更改事件不会触发数据更改(例如 RxJS、API 等)。 有什么想法,为什么会触发两次? 我有一种强烈的感觉,它的发生是因为输入元素上的 [ngModel]。您使用它来设置 value :) 的值,然后在 toggleCheck() 函数中再次设置它(实际上是恢复它)。 <div class="ultim-checkbox" [class.readonly]="readonly || disabled" [class.checked]="checked" [class.intermediate]="intermediate" (click)="toggleCheck($event)"> <!-- Either remove ngModel > <input type="checkbox" tabindex="0" [required]="required" [ngModel]="REMOVE_ME" /> <span> <!-- ... --> </span> </div> 或者不要这样做: public toggleCheck(event: MouseEvent): any { if (this.checkboxGroup) { this.checkboxGroup.addOrRemove(this.value); } else { // Or don't set the value here // Although I'm not sure how the condition above affects this. this.value = !this.value; } this.intermediate = false; }
有没有一种简单的方法可以按照以下方式做一些事情: JavaScript: if(document.getElementById('button').clicked == true) { Alert("按钮被点击"); } HTML: 有没有一种简单的方法可以按照这些思路做一些事情: JavaScript: if(document.getElementById('button').clicked == true) { alert("button was clicked"); } HTML: <input id="button" type="submit" name="button" value="enter"/> 您可以为此添加一个单击事件处理程序: document.getElementById('button').onclick = function() { alert("button was clicked"); }; 这会在单击时发出警报,如果您想稍后跟踪它,只需在该函数中将变量设置为 true 而不是警报,或者 variable++ 如果您想计算点击次数,无论您的最终用途是什么。 您可以在此处查看示例。 尝试添加点击事件侦听器: document.getElementById('button').addEventListener("click", function() { alert("You clicked me"); }); 使用 addEventListener 可能比设置 onclick 更好 - onclick 可以很容易地被另一段代码覆盖。 您可以使用变量来存储按钮之前是否被点击过: var clicked = false document.getElementById('button').addEventListener("click", function() { clicked = true }); 在 MDN 上添加事件监听器 这样就可以了 <input id="button" type="submit" name="button" onclick="myFunction();" value="enter"/> <script> function myFunction(){ alert("The button was pressed"); }; </script> 这里的所有答案都讨论了 onclick 方法,但是您也可以使用 addEventListener()。 addEventListener()的语法 document.getElementById('button').addEventListener("click",{function defination}); 上面的函数定义称为匿名函数。 如果你不想使用匿名函数,你也可以使用函数引用。 function functionName(){ //function defination } document.getElementById('button').addEventListener("click",functionName); 您可以在此答案中查看 onclick() 和 addEventListener() 之间的详细差异此处。 只需挂接 onclick 事件即可: <input id="button" type="submit" name="button" value="enter" onclick="myFunction();"/> $("#button").on('click',function(){ //do something }); 你可以这样做: <button onClick="funtion()">Button Goes Here</button function alert(){ console.log('Alert Showed'); alert('You clicked me!'); } <button onClick="alert()">Click me to get alerted</button> function check() { console.log("Button Clicked"); }; var button= document.querySelector("button"); // Accessing The Button // button.addEventListener("click", check); // Adding event to call function when clicked // document.querySelector("#button").addEventListener("click", () => { console.log("button was clicked"); }) // this event listener will help you detect clicks on the document document.addEventListener('click', function(e){ // <event>.<target>.<id> check that the id is 'button' if(e.target.id === 'button'){ // do something here console.log(e.target.id); } } 更简单的方法是通过 html onclick <input id="button" onclick= 'your function here' type="submit" name="button" value="enter"/> 或使用按钮 <button id="button" onclick= 'your function here' type="submit" name="button" value="enter">Your text here </button>
如何停止点击事件的传播以使浏览器不会重定向? 所以 </desc> <question vote="4"> <p>如何停止传播点击事件以使浏览器不会重定向?</p> <pre><code><a id="theHref" href="http://stackoverflow.com/">SO</a> <script> document.getElementById("theHref").addEventListener("mousedown", function(event) { console.log("href clicked, lets try to stop event propagation"); event.stopPropagation(); event.preventDefault(); return false; }); </script> </code></pre> </question> <answer tick="true" vote="10"> <p>首先,你想监听“click”事件,而不是 mousedown</p> <pre><code>document.getElementById("theHref").addEventListener("click", function(event) { console.log("href clicked, lets try to stop event propagation"); event.preventDefault(); return false; }); </code></pre> <p>不确定你是否需要 return false - 我永远记不起这样的跨浏览器细微差别:p return false 不会停止 Firefox,例如</p> </answer> <answer tick="false" vote="0"> <p>只需尝试使用 return false 这是一个简单的方法,不会让你重定向</p> <pre><code><script> $(function(){ $("#theHref").click(function(){ return false; }); }); </script> </code></pre> <p>只需参考这个小提琴<a href="http://jsfiddle.net/4nhktocy/" rel="nofollow">小提琴</a></p> </answer> <answer tick="false" vote="0"> <p>这应该有效:</p> <pre><code>document.getElementById("theHref").addEventListener("click", function(event) { console.log("href clicked, lets try to stop event propagation"); event.preventDefault(); }); </code></pre> </answer> <answer tick="false" vote="0"> <p>试试这个。</p> <pre><code><a href="https://www.google.com/" onclick="event.stopPropagation()">Click Here</a> </code></pre> <p>元素上有一个默认的 <pre><code>event</code></pre> 对象可用。您可以访问它来禁用/停止事件传播。</p> </answer> </body></html>
删除 beforeunload 事件在 React 中不起作用
下面的代码片段假设添加和删除事件监听器handleBeforeUnload。在检查浏览器控制台时,我看到打印了“inside else”,但是加载页面仍然如此......
onClick 或 onTouchEnd 不适用于 iOS,但适用于桌面
我正在创建一个网站,我需要在页面上显示不同的产品卡并提供 URL。我在桌面浏览器中进行了测试,无论是内部还是外部,onClick 都能正确触发...
Bootstrap 5 data-bs-toggle“折叠”防止通过单击 div 中的按钮进行操作
我有一个带有 data-bs-toggle 属性的 < div >。在该 div 中我有按钮 单击它时面板会折叠,但我不希望单击
“反应”:“^15.4.2” 我无法从 jquery 触发使用 React 渲染的输入的更改事件。 我需要这样做来进行一些端到端测试。 这是一个沙盒作为完整的展示:
React:未调用的 useState 变量在调试器的事件处理程序中不可用
第一次这么问!希望我做得对。 问题是,当我在浏览器 (Chrome) 中的事件处理程序调试器中时,为什么事件处理程序未使用的 useState 变量不可用? 例如...
所以我写了一段代码,其中有 9 个 div,我给了它们“.spaces”类,我希望它们在被点击时改变颜色。但只有第一个 div 发生变化...
我需要使用 window.resize 事件,但我注意到在移动设备上,即使显示键盘(例如,聚焦搜索字段时)也会触发该事件。就我而言,这不是一个好的...
我有一个父窗口,我可以从其中获取头部内部的所有样式表链接。然后我cloneNode这些样式,最后将appendChild到iframe的头部。 什么时候我可以参加活动
是否可以使用 Chrome 扩展在 React 词法编辑器中自动编写文本?
我正在尝试编写一个 chrome 扩展,当用户按下按钮时,它会自动在文本框中写入文本。我很确定我正在尝试让 chrome 扩展工作的网站是 usi...
我正在使用以下代码在我的应用程序中打印页面...... ” sHtmlBody = sHtmlBody & "" window.print() 可以工作...