Tag: 事件

要传递参数给AS3中的事件监听器,简单的方法是…它存在吗?

预期/伪示例: stage.addEventListener(MouseEvent.CLICK, onClick.someWayToPassParameters(true, 123, 4.56, "string")); function onClick(e:MouseEvent):void { trace("Received " + someWayToRetrieveParameters().b/i/n/s + "."); } 多年来(3〜4年),在每一个网站,论坛,博客上,无论我在哪里search,人们告诉我没有简单的方法来做到这一点。 他们通常build议: 将侦听器添加到dynamic对象,您可以在其中将该值设置为一个额外的属性,并在该函数中引用它(e.target.property / e.currentTarget.property)。 并不是所有的类都是dynamic的 例如,它在Sprite上不起作用。 使用自定义类扩展对象的类以添加属性或使其变为dynamic。 你必须每次创build一个全新的调整类。 使用匿名函数作为事件处理程序。 没有参考(这是丑陋的)。 要删除监听器以释放资源,你必须使用arguments.callee从函数本身内部完成。 在事件处理程序中使用参数调用另一个函数。 而在事件处理程序调用的地方去参数呢? 将事件处理程序保存在与参数相同的作用域中。 违背语义混乱。 在接收目标和参数的函数中封装事件处理程序定义和addEventListener调用。 它可以混合使用示波器,但是它非常接近。 但是你必须小心。 …其他许多build议的解决方法。 我只想传递一个参数给事件处理函数,所以我可以在函数内部使用它,就像任何普通的函数一样! 我要求太多吗?

JavaScript:DOM加载事件,执行顺序和$(document).ready()

我刚刚意识到我缺乏关于浏览器正在加载的页面的基本知识。 假设我有这样的结构: <head> <script src="jquery.js" type="text/javascript"></script> <script src="first.js" type="text/javascript"></script> </head> <body> … <script type="text/javascript" id="middle"> // some more JS here… </script> … <script src="last.js" type="text/javascript"></script> </body> 以下是我的问题: 事情发生的顺序是什么? 首先是DOM,然后是JS执行,反之亦然,或者是同时执行(或者只要JS文件完成下载,不考虑DOM)? 我知道脚本是按顺序加载的。 $(document).ready()在哪里适合? 在Firebug的Net选项卡中,我看到DOMContentLoaded事件和load事件。 $(document).ready()在DOMContentLoaded事件触发时触发? 找不到任何具体的信息(大家只是提到“何时加载DOM”)。 “什么时候装载DOM”是什么意思? 所有的HTML / JS已被浏览器下载和parsing? 或者只是HTML? 下面的情况是可能的:有一个$(document).ready()在last.js中调用代码,但在last.js加载之前运行? 它最可能在哪里(在first.js或内联代码块中)? 我怎样才能防止这种情况? 我想要展示什么时候会发生什么,什么取决于什么(如果有的话)的大局。

.NET中的事件签名 – 使用强types的“发件人”?

我完全意识到我所提议的并不遵循.NET的指导方针,因此,仅仅因为这个原因可能是一个糟糕的主意。 不过,我想从两个可能的angular度来考虑: (1)我是否应该考虑将其用于我自己的开发工作,这是100%用于内部目的。 (2)这是一个框架devise者可以考虑改变或更新的概念吗? 我正在考虑使用事件签名,它使用强types的“发件人”,而不是将其作为当前的.NETdevise模式“对象”input。 也就是说,而不是使用如下所示的标准事件签名: class Publisher { public event EventHandler<PublisherEventArgs> SomeEvent; } 我正在考虑使用使用强types的“发件人”参数的事件签名,如下所示: 首先,定义一个“StrongTypedEventHandler”: [SerializableAttribute] public delegate void StrongTypedEventHandler<TSender, TEventArgs>( TSender sender, TEventArgs e ) where TEventArgs : EventArgs; 这与Action <TSender,TEventArgs>并不完全相同,但是通过使用StrongTypedEventHandler ,我们强制TEventArgs从System.EventArgs派生。 接下来,作为一个例子,我们可以在发布类中使用StrongTypedEventHandler,如下所示: class Publisher { public event StrongTypedEventHandler<Publisher, PublisherEventArgs> SomeEvent; protected void OnSomeEvent() { if (SomeEvent != null) { SomeEvent(this, new PublisherEventArgs(…)); […]

ActionListener的JTextArea内的特定文本?

我在我的应用程序中有一个JTextArea的聊天组件。 现在,我怎么能为特定的文本添加一个类似于ActionListener的事件(比如student:// xxxx)呢? 所以当我点击那个文本(student:// xxxx)时,会发生什么事情。 谢谢。

有和没有“新”的接线事件之间的区别

在C#中,这两行代码有什么区别(如果有的话)? tmrMain.Elapsed += new ElapsedEventHandler(tmrMain_Tick); 和 tmrMain.Elapsed += tmrMain_Tick; 两者似乎工作完全一样。 当你input后者时,C#是否假设你是指前者?

添加onclick事件到JavaScript中新添加的元素

我一直在尝试将onclick事件添加到使用JavaScript添加的新元素中。 问题是当我检查document.body.innerHTML我实际上可以看到onclick = alert('blah')被添加到新的元素。 但是,当我点击该元素,我没有看到警告框正在工作。 实际上,与JavaScript相关的任何内容都无法正常工作 这里是我用来添加新的元素: function add_img() { var elemm = document.createElement('rvml:image'); elemm.src = 'blah.png'; elemm.className = 'rvml'; elemm.onclick = "alert('blah')"; document.body.appendChild(elemm); elemm.id = "gogo"; elemm.style.position='absolute'; elemm.style.width=55; elemm.style.height=55; elemm.style.top=200; elemm.style.left=300; elemm.style.rotation=200; } 这里是我如何调用这个函数: <button onclick=add_img()>add image</button> 现在,图像完美地绘制在浏览器内部。 但是,当我点击图像,我没有得到这个警报。

Firefox中的event.offsetX

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> <script language="javascript"> function main(){ var canvas = document.getElementById("canvas"); canvas.addEventListener("mousemove", function(e){ if (!e) e = window.event; var ctx = canvas.getContext("2d"); var x = e.offsetX; var y = e.offsetY; ctx.fillRect(x, y, 1, 1); }); } </script> </head> <body onload="main();"> <div […]

用jQuery获取集合中单击元素的索引

如何获得下面代码中点击项目的索引? $('selector').click(function (event) { // get index in collection of the clicked item … }); 用Firebug我看到了这个: jQuery151017197709735298827: 2 (我点击了第二个元素)。

使用JavaScript和jQuery处理按键事件(F1-F12),跨浏览器

我想要使​​用JavaScript和jQuery处理F1-F12键。 我不确定要避免哪些缺陷,目前我还无法在Internet Explorer 8,Google Chrome和Mozilla FireFox 3等其他浏览器上testing实现。 任何build议到一个完整的跨浏览器解决scheme? 就像一个经过充分testing的jQuery库或者只是香草jQuery / JavaScript?

如何将onClick事件传递给它的父母在Android上?

我有一个布局的背景是一个select器的TextView。 TextView的文本被设置为从HTML生成。 然后我用LinkMovementMethod设置TextView。 现在,当我点击TextView时,单击事件不会发送到其父布局来触发select器。 这应该如何解决? 谢谢!