问题标签 [events]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - Javascript 事件:获取更改的通知控制值
我有以下问题:
我有一个 HTML 文本框 ( <input type="text">
),其内容由我无法触摸的脚本修改(它是我的页面,但我正在使用外部组件)。
每次该文本框的值发生更改时,我都希望在我的脚本中得到通知,以便我可以对其做出反应。
我试过这个:
哪个(可以预见)不起作用。仅当我自己使用键盘更改文本框值然后将焦点移至其他位置时才会执行它,但如果脚本更改值则不会执行它。
还有其他我不知道的事件我可以听吗?
我正在使用 Prototype 库,如果相关,修改文本框值的外部组件是 Basic Date Picker (www.basicdatepicker.com)
javascript - jQuery - 通过单击链接问题触发事件
我想通过正常单击链接或在新选项卡中打开链接(例如,中键单击、ctrl + 单击等)在单击链接时触发事件
到目前为止,我已经尝试了以下方法:
$('a').click(myfunc)
不捕获中间点击。
$('a').mousedown(myfunc)
有效,但它似乎阻止了链接被跟踪,即使我的函数没有调用event.preventDefault
.
任何想法如何做到这一点?
javascript - 如何将键盘焦点赋予 DIV 并将键盘事件处理程序附加到它?
我正在构建一个应用程序,我希望能够单击由 DIV 表示的矩形,然后使用键盘通过列出键盘事件来移动该 DIV。
我可以在 DIV 级别侦听键盘事件,而不是在文档级别为这些键盘事件使用事件侦听器,也许通过给它键盘焦点?
这是一个简化的示例来说明问题:
单击内部 DIV 时,我尝试将其聚焦,但后续键盘事件总是在文档级别而不是我的 DIV 级别事件侦听器中获取。
我是否只需要实现特定于应用程序的键盘焦点概念?
我应该补充一点,我只需要它在 Firefox 中工作。
c# - 在 C# 中拦截 Windows Vista 关闭事件
我希望能够在 C# 中为 Windows Vista 拦截关机事件。由于 Vista 的高级安全功能,调用关机命令后运行的任何应用程序都会停止并显示在列表中,提示用户对其进行操作。
有谁知道如何克服这个问题以及我需要在 Vista 中使用哪些事件。
谢谢。
c# - 使用事件而不是异常来实现错误处理
我正在编写一些代码,这些代码在其业务和数据层中使用一种模式,这些模式使用事件来表示错误,例如
这看起来很奇怪,尤其是调用它的代码需要挂钩事件(有四五个不同的事件!)。
开发人员告诉我,这样他们可以在错误处理代码中引用已分配资源的属性,并且该层负责在错误后进行清理。
这有点道理。
替代方案可能类似于
我的问题是:
由于这个“
BigObject
”在异常对象被释放时被释放,我们需要这个模式吗?有没有其他人经历过这种模式?如果有,你发现了什么陷阱?有什么优势?
谢谢!
c# - AJAX.NET 订阅 Reorderlist ItemCommand 还是 DeleteCommand?
我想订阅我页面上的 Reorderlist 的 ItemCommand 事件。前端是这样的...
在后端,我在 Page_Load 上有这个
并且定义了这个函数
尽管我尽了最大的努力,但我似乎无法让这个活动开始。如何在 ReorderList 控件中正确订阅此事件?
javascript - 如何在 Javascript 中处理 ActiveX 事件
这在某种程度上是对此处答案的跟进。
我有一个自定义 ActiveX 控件,它引发了一个需要由 Web 浏览器中的 Javascript 处理的事件(带有“msg”参数的“ReceiveMessage”)。从历史上看,我们已经能够在不同的项目中使用以下仅限 IE 的语法来完成此操作:
但是,当在控件被隐藏的布局内时,Javascript 无法找到该控件。具体来说,如果我们把它放到一个普通的 HTML 页面中,它可以正常工作,但是如果我们把它放到一个由<Form>
标签包裹的 ASPX 页面中,我们会得到一个“MyControl is undefined”错误。我们尝试了以下变体:
...但它会导致 Javascript 错误“GetControl 未定义”。
处理从 ActiveX 控件发送的事件的正确方法是什么?现在我们只对让这个在 IE 中工作感兴趣。这必须是我们正在做的自定义 ActiveX 控件。
谢谢。
c# - 如何在 C# 中清除事件订阅?
学习以下 C# 类:
如果有很多订阅c1
'ssomeEvent
事件并且我想将它们全部清除,那么实现这一目标的最佳方法是什么?还要考虑到此事件的订阅可能/是 lambdas/匿名委托。
目前我的解决方案是添加一个设置为 null的ResetSubscriptions()
方法。我不知道这是否有任何看不见的后果。c1
someEvent
c# - 在不触发事件的情况下设置 WPF 依赖属性
我需要在我的代码中的控件 (Slider.Value) 上设置依赖属性,而不触发 ValueChanged 事件(因为我设置了值,而不是用户)。在 WPF 中处理这种情况的最佳方法是什么?
为了澄清起见,我要做的是将 WPF 滑块连接到 WinForms 用户控件。目前在我的应用程序中,我有一个 ValueChanged 事件处理程序,它通过方法调用将滑块值传递给 WinForms 控件。WinForms 控件(实际上是原生 OpenGL 窗口的包装器)需要能够根据其内部计算动态更改滑块。为此,我使用了一个滑块 (ISlider) 的抽象,我在我的应用程序中实例化了该滑块的 WPF 风格,并通过 WinForms 用户控件上的 .NET 属性将一个句柄传递给 WinForms 控件。所有这些目前都在工作,只是当内部逻辑决定滑块需要更改时,它调用 ISlider::SetPos(),然后更改 WPF 滑块,然后在滑块上触发 ValueChanged 事件,并且该事件的处理程序提取滑块的位置并将其传递给最初发起该事件的 WinForms 控件。ligaz 和 Alan Le 的建议似乎都应该奏效,但我只是不确定我是否会以最好的方式解决这个问题。
c# - 切换任务时不会触发 Control.Enter 事件。有替代方案吗?
代表步骤:
- 创建示例 .NET 表单应用程序
- 在表单上放置一个文本框
- 将函数连接到 TextBox 的 Enter 事件
当您运行此应用程序时,当焦点第一次转到 TextBox 时会触发Control.Enter事件。但是,如果您单击离开另一个应用程序,然后单击返回测试应用程序,则该事件不会再次触发。
因此,在应用程序之间移动不会触发 Enter/Leave。
是否有另一种可供我使用的替代控制级事件,它会在这种情况下触发?
通常,我会使用Form.Activated。不幸的是,这在这里很麻烦,因为我的组件由一个停靠系统托管,该系统可以将我的组件取消停靠到一个新的表单中而无需通知我。