Questions tagged «events»

事件是类在发生特定事件时向侦听器提供通知的一种方式。

7
如何阻止页面在JS中卸载(导航)?
有谁知道如何阻止页面重新加载或导航? jQuery(函数($){ / *全局卸载通知* / 警告=真; 如果(警告){ $(window).bind(“ unload”,function(){ 如果(confirm(“是否要离开此页面”)== true){ //他们按了确定 警报('确定'); }其他{ //他们按下了取消 警报('取消'); 返回false; } }); } }); 目前,我在一个电子商务网站上工作,显示您未来订单的页面可以更改使用+/-按钮订购的项目的数量。以这种方式更改数量实际上并不会更改订单本身,他们必须按下确认键,因此会采取积极行动更改订单。 但是,如果他们更改了数量并离开了页面,我想警告他们,以防万一,这是意外的情况,因为如果更改数量会导致他们离开或刷新页面,则丢失。 在上面的代码中,我使用的全局变量默认情况下为false(仅在测试时为true),当数量更改时,我会将其更新为true,当他们确认更改时,会将其设置为false 。 如果警告是正确的并且该页面已卸载,那么我会向他们提供一个确认框,如果他们说不,他们希望保留在该页面上,则需要停止该页面的卸载。return false不起作用,它仍然允许用户导航(警报仅在此处调试) 有任何想法吗?

12
观察者模式与事件驱动方法之间的区别
我总是发现观察者模式几乎与通常的事件驱动方法相似。实际上,我几乎相信它们实际上是指同一事物的不同名称。它们都使用相似的概念作为侦听器,甚至在实现中,它们几乎是同一件事,那就是具有回调方法/函数来执行操作。至少在Java中是这样。 用其他语言(如Actionscript / Flex)表示,事件对用户更友好,并且看起来似乎不仅仅是观察者模式定义的事情。但是,这些概念听起来是一样的。 但这是真的吗?观察者模式与通常的事件驱动编程风格一样吗?

2
如何克隆或重新调度DOM事件?
我正在寻找仅克隆或重新调度DOM事件的简单抽象方法。我对克隆DOM节点不感兴趣。 我做了一些实验,阅读了DOM Events规范,但没有找到明确的答案。 理想情况下,我正在寻找简单明了的东西: handler = function(e){ document.getElementById("decoy").dispatchEvent(e) } document.getElementById("source").addEventListener("click", handler) 当然,此代码示例不起作用。有一个DOM异常说明该事件当前正在分派-很明显。 我想避免使用手动创建新事件document.createEvent(),对其进行初始化和调度。 这个用例有一个简单的解决方案吗?

11
消息驱动与事件驱动的应用程序集成方法
我想知道当我们提到SOA或中间件时,通常在应用程序和企业集成的情况下,消息驱动环境和事件驱动环境之间是否存在明显的区别。我了解到,用户界面类似于事件驱动的模型,其中我们的系统拦截用户的操作。 同样很明显,消息传递支持基于发布/订阅,同步或异步通信,事务等的系统。 但是中间件/ soa /应用程序集成上下文是否有所不同?(体系结构级别)。我正在尝试查阅Wikipedia的资源(here和here),但是我仍然有些困惑。开发人员何时应首选一种解决方案? 是否存在一些例子或案例,其中一种方法比另一种方法更有意义?或是否有任何综合资源和实施指南? 非常感谢您的见解。

4
创建JavaScript自定义事件
我想在JavaScript中创建一个自定义事件。 我有一个内部带有WebBrowser的WPF应用程序,以及一个带有JavaScript的HTML页面。 我使用打印机。打印机状态更改时,它将触发.NET中的事件。 然后,我OnPrinterStateChanged(state)使用InvokeScriptWebBrowser控件的功能调用JavaScript方法。 问题是我必须OnPrinterStateChanged(state)在网页中实现该方法。我无法更改方法的名称或无法订阅/取消订阅该事件... 我想将JavaScript方法移动到OnPrinterStateChanged(state)单独的JavaScript文件中。 我想要的是 : 在我的HTML页面中订阅/取消订阅该事件,并确定触发事件时我想做什么(例如:“功能ChangeState”) 触发.NET事件时,它将调用OnPrinterStateChanged(state)我单独的.js文件的,然后触发JavaScript事件并ChangeState调用该函数。 我找到了一些解决方案,但是我没有设法使它起作用。最简单的方法是什么?

5
javascript捕获浏览器快捷方式(ctrl + t / n / w)
是否可以捕获这些快捷方式? Ctrl+N Ctrl+T Ctrl+W 我试过了,但是没有用: $(window).keydown(function(event) { console.log(event.keyCode); event.preventDefault(); }); 当我按下T它时,它会显示84在控制台中,但是如果按下Ctrl+,T它什么都不会显示,并打开一个新标签。 我想捕获这些快捷方式并阻止任何浏览器操作。

4
jQuery:如何在事件处理函数中获取事件对象而不将其作为参数传递?
我的onclick链接上有一个属性: <a href="#" onclick="myFunc(1,2,3)">click</a> 指向JavaScript中的此事件处理程序: function myFunc(p1,p2,p3) { //need to refer to the current event object: alert(evt.type); } 由于事件对象“ evt”没有传递给参数,是否仍然可以获得该对象? 我试过window.event和$(window.event),但两者都是undefined。 任何想法?

4
GWT自定义事件
嘿,我无法确定自定义GWT事件处理程序的工作原理。我已经阅读了很多有关该主题的文章,但仍然有些模糊。我在这里读过Stackoverflow上的线程,例如一个GWT自定义事件处理程序。有人可以在下面的应用手册中解释它。 我有2个班级,每个班级和一个男人班。当该人与该块碰撞时,该人触发一个事件(onCollision()),然后该块类侦听该事件。 谢谢
67 events  gwt 

2
不注销事件处理程序是否不好?
如果我有一个仅注册了少数事件处理程序的应用程序(并且使用该事件的对象直到应用程序关闭才被处置),我真的需要担心取消注册那些处理程序吗?我能看到的唯一好的原因是,如果触发了您不必关心的事件(即,您为一个事件注册了多个处理程序),则可能会有一些额外的开销。还有其他理由吗?是否有人因为未注销事件而遇到重大问题?

6
为什么使用EventArgs.Empty而不是null?
我回想起在多个场合和多个位置读到的关于触发典型事件的信息: protected virtual OnSomethingHappened() { this.SomethingHappened(this, EventArgs.Empty); } 如果没有有趣的事件参数,则e应该为EventArgs.Empty,而不是null。 我遵循了代码中的指导,但是我意识到我不清楚为什么这是首选技术。为什么指定的合同比空值更喜欢EventArgs.Empty?
67 c#  events  eventargs 

2
如何正确注销事件处理程序
在代码审查中,我偶然发现了这个(简化的)代码片段以注销事件处理程序: Fire -= new MyDelegate(OnFire); 我认为这不会取消注册事件处理程序,因为它会创建一个从未注册过的新委托。但是在搜索MSDN时,我发现了几个使用此惯用语的代码示例。 所以我开始了一个实验: internal class Program { public delegate void MyDelegate(string msg); public static event MyDelegate Fire; private static void Main(string[] args) { Fire += new MyDelegate(OnFire); Fire += new MyDelegate(OnFire); Fire("Hello 1"); Fire -= new MyDelegate(OnFire); Fire("Hello 2"); Fire -= new MyDelegate(OnFire); Fire("Hello 3"); } …
67 c#  .net  events  delegates 

7
如何在C#中触发事件之前阻止代码流
在这里,我们有Grid一个Button。当用户单击按钮时,将执行Utility类中的方法,该方法强制应用程序接收对Grid的单击。代码流必须在此处停止,并且直到用户单击时才能继续Grid。 在此之前,我有一个类似的问题: 等到用户单击C#WPF 在这个问题中,我使用了有效的async / await得到了答案,但是由于我打算将其用作API的一部分,因此我不想使用async / await,因为消费者随后必须用我不想要的异步。 如何编写Utility.PickPoint(Grid grid)方法以实现此目标? 我看到这可能有所帮助,但说实话,我对此并不完全了解: 阻塞直到事件完成 将其视为类似于Console应用程序中的Console.ReadKey()方法的东西。当我们调用此方法时,代码流将停止,直到我们输入一些值为止。在我们输入内容之前,调试器不会继续。我想要PickPoint()方法的确切行为。代码流将停止,直到用户单击网格为止。 <Window x:Class="WpfApp1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:WpfApp1" mc:Ignorable="d" Title="MainWindow" Height="450" Width="800"> <Grid> <Grid.RowDefinitions> <RowDefinition Height="3*"/> <RowDefinition Height="1*"/> </Grid.RowDefinitions> <Grid x:Name="View" Background="Green"/> <Button Grid.Row="1" Content="Pick" Click="ButtonBase_OnClick"/> </Grid> </Window> public partial class MainWindow : Window { public MainWindow() { …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.