- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
任务 - 为 Angular 库创建一个可重用的按钮/ anchor 标记属性选择组件,其中尽可能多的行为逻辑绑定(bind)在组件本身而不是 HTML 标记上。
理想情况下,HTML 标记应尽可能干净<a routerLink="" attributeSelectorForComponent></a>
问题 - 试图阻止 routerLink 在 [attr.disabled]
时触发存在于 anchor 标签上,带有点击监听器。
@HostListener('click', ['$event']) onMouseClick(event: Event) {
event.stopImmediatePropagation();
event.preventDefault()
}
最佳答案
没有解决方案会导致此标记 <a routerLink="" attributeSelectorForComponent></a>
.
您尝试的解决方案不起作用,因为 stopImmediatePropagation
旨在防止事件冒泡,preventDefault
旨在防止此类事件的默认浏览器行为(例如:提交事件将触发 POST
请求)。在任何一种情况下,Angular 都会收到该事件的通知并做出相应的 react 。
如果 RouterLink
指令有一个 exportAs
属性。在这种情况下,可以控制 RouterLink
来自自定义指令。不幸的是,情况并非如此(RouterLink source)
剩下的唯一选择是扩展 RouterLinkWithHref
像这样的指令:
@Directive({
selector: "a[myRouterLink],area[myRouterLink]"
})
export class MyDirective extends RouterLinkWithHref implements OnChanges {
@Input()
myRouterLink;
@Input()
myDisabled;
constructor(
private myRouter: Router,
private myRoute: ActivatedRoute,
private myLocationStrategy: LocationStrategy,
private host: ElementRef
) {
super(myRouter, myRoute, myLocationStrategy);
}
ngOnChanges() {
if (this.myDisabled) {
this.host.nativeElement.setAttribute("disabled", "disabled");
this.routerLink = null;
} else {
this.host.nativeElement.removeAttribute("disabled");
this.routerLink = this.myRouterLink;
}
}
}
<a myRouterLink="a" [myDisabled]="disabled"></a>
RouterLink
关于javascript - 使用 stopImmediatePropagation 方法禁用 routerLink,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58301088/
我正在为我自己的对象模型重用 native 事件类。 我发现并使用了 Event.stopBubbling 属性,该属性在调用 Event.stopPropagation() 后确实设置为 true。
考虑以下代码: HTML testlink JavaScript $('#myLink').on("mousedown",doMouseDown); function doMouseDown(e) {
我想使用 stopImmediatePropagation 来防止触发同一元素上的第二个(鼠标按下)hadler,但它不起作用。代码示例: $(function() { var showEvent
我在 DOM 填充期间添加了几个图像元素,我使用 jQuery“on”将点击监听器附加到添加的每个图像,为了防止在单击图像时传播事件我使用了 stopImmediatePropagation,但是这没
将@angular/platform-browser(和其他@angular/xxx)升级到版本 6.0.4 后,我在应用程序的第一次加载和每次第一页重新加载后出现此错误(第一个 F5:错误,第二
IE 缺少对 stopPropagation() 的支持,requires workarounds ,但我无法判断 stopImmediatePropagation() 是否也是如此 - 它对所有浏览
我有这样的代码: NEXT 此应用程序包含一个库,不允许对其进行编辑。单击“ui-button-next”时,它们会调用 event.stopImmediatePropagation() 来停止
event.stopPropagation()和event.stopImmediatePropagation()有什么区别? 最佳答案 stopPropagation 将阻止任何 父 处理程序被执行
任务 - 为 Angular 库创建一个可重用的按钮/ anchor 标记属性选择组件,其中尽可能多的行为逻辑绑定(bind)在组件本身而不是 HTML 标记上。 理想情况下,HTML 标记应尽可能干
目前,当我取消注释 e.stopImmediatePropagation(); 时,该代码片段仅允许切换每个菜单。 问题是我无法使用 e.stopImmediatePropagation(); 因为我
如果满足特定场景,我想限制对 anchor 按钮单击的进一步操作。在将事件处理程序附加到正文时,我下面给出的一段代码不起作用。 anchor 是 Continue jquery部分是 $('body'
我有一个使用 Jquery 和 Ajax 将数据发送到服务器端的表单,但是即使我在我的应用程序中应用了 preventDefault() 和 stopImmediatePropagation 也提交了
我得到这个代码 http://www.technoread.net/webdesign/javascript-a-jquery/item/89-live-table-edit-delete-with-
我在某些文本点击时显示搜索字段,并在搜索输入模糊时隐藏它。 但如果我点击搜索按钮,我不想隐藏输入字段,并防止它被隐藏(因为模糊)。我尝试 stopImmediatePropagation() 但没有任
我正在尝试修改 Jira Tempo 插件的计划工作表。所以在节奏时间表页面我有一个绑定(bind)了 2 个 Action 的按钮,一个是点击 Action ,一个是聚焦。单击操作会打开一个弹出窗口
我正在尝试加快网页速度,但由于我是 JavaScript 的新手,优化并非没有错误。我创建了我想与 Window.requestAnimationFrame() 结合使用的 onclick 过渡效果。
我相信 event.stopImmediatePropagation() 不适用于 Chrome for Android。有人能解决吗? (替代代码)?谢谢。 最佳答案 尝试 event.callNo
我有一个用于创建图像轮播的 jQuery 代码。我知道这不是最优雅的代码。 jQuery(function(){ $(".project").css('max-height','180px'); //
如何从 onclick 中获取事件对象?属性? 我试过: Click me 另外,我试过这个: Click me 但是控制台只显示元素。 最佳答案 我认为您必须在 中定义函数在别处标记。 简单地使用
我正在为一个 JavaScript 库编写事件处理代码,我正在尝试实现类似于 stopImmediatePropagation() 的东西,它也可以在 IE 6 中工作。 当前事件处理的工作方式是,我
我是一名优秀的程序员,十分优秀!