我怎样才能绑定所有的事件(即click,keypress,mousedown一个DOM元素),使用jQuery,没有单独列出每一个出来?
例:
$('#some-el').bind('all events', function(e) {
console.log(e.type);
});
Run Code Online (Sandbox Code Playgroud) 我知道你可以在Chrome Inspector中看到事件监听器,但是我正在做一些调试工作,并且有很多事件监听器在我周围我想要禁用一些而不编辑代码

有没有办法从Webkit检查器快速禁用事件侦听器?
也许看一下并removeEventListener在监听器的控制台中输入一些代码?我该怎么做?例如,我如何删除上面的"点击"听众
使用react-domand 的当前版本@material-ui,我需要stopPropagation和/或preventDefault在很多地方。我从来没有遇到过像本文这样的问题,我猜这不会发生,因为 Material-UI 的工作方式:AFAIK 打开对话框和模态首先获取事件,所以当点击外部时它们总是关闭。
我对这个假设是否正确?
如果是这样,是否还有情况,我不应该stopPropagation和/或preventDefault?
无论如何,我厌倦了通过这个样板使所有事件处理程序复杂化。我想自动化这个,这可能吗?
我没有提供一个例子,哪里stopPropagation是必要的,因为它无济于事(我们都知道有时需要它,不是吗?)。它发生在我身上好几次,例如,单击 MUI 中的关闭按钮Popover将单击转发到打开弹出窗口的按钮(因此它保持打开状态)。
请注意,问题分为三个部分。如果没有自动化解决方案(我敢打赌,React 本身可以做到),我最好奇的是在使用 MUI 时不应该发生抑制的情况。
dom-events preventdefault stoppropagation reactjs material-ui
我有一个要求,我们希望用户解决输入字段错误,并且在完成之前不允许用户在屏幕上进行任何其他操作。
同样,我在输入字段和 onBlur 上实现了 HostListener,如果验证方案失败,我会将焦点设置回输入字段。
并且,我正在执行 e.preventDefault() 和 e.stopPropagtion() 来停止要在页面上执行的所有其他事件回调(在设置focus后,blur将是要执行的第一个事件)。
但不知何故,在任何外部事件上,blur确实会被执行,但不限制其他事件的执行。那些也正在执行,否则我将无法实现所需的功能。
import { Directive, HostListener, Input } from '@angular/core';
@Directive({
selector: '[appNumberFormat]'
})
export class NumberFormatDirective {
constructor() { }
@HostListener('blur', ['$event']) blur(evt) {
evt.preventDefault();
console.log('field focus...');
evt.target.focus();
return false;
// if (evt.target.value.trim() === '') {
// this.formControl.control.setValue(this.defaultValue);
// }
}
}
Run Code Online (Sandbox Code Playgroud)
我在 stackBlitz 中复制了相同的场景。请看一看。
javascript ×2
angular ×1
dom-events ×1
inspector ×1
jquery ×1
material-ui ×1
onblur ×1
onfocus ×1
reactjs ×1
webkit ×1