天道酬勤,学无止境

dom-events

Catch / Listen to function's execution

I want to add to all functions in module logger. I want to log "start" time of the function and "end" time. So that's way I can get performance time of every function (sync functions). But I can't get how to make it work.. =( I don't want to rewrite functions in some dynamic way - I want to debug them in the future..So need to keep original code - I need to find some way to wrap every function... Lets take a look some example: module.exports = { someVar: "12345string", operation1: function(){ alert("operation1"); }, operation2: function(){ alert("operation2"); } }; Once module's function

2022-01-18 17:44:52    分类:问答    javascript   oop   dom-events

Facebook application, dialogue to publish on user's wall, using Javascript API, pop-up blocked in browsers

I am using JS-API to generate a dialogue which asks for permission to publish the status message generated by my Application. Given below is the screenshot of what I am talking about: Here is the code: FB.ui( { method: 'feed', name: 'Facebook Dialogs', link: 'http://developers.facebook.com/docs/reference/dialogs/', picture: 'http://fbrell.com/f8.jpg', caption: 'Reference Documentation', description: 'Dialogs provide a simple, consistent interface for applications to interface with users.', message: 'Facebook Dialogs are easy!' }, function(response) { if (response && response.post_id) { alert(

2022-01-18 03:55:41    分类:问答    facebook   popup   facebook-javascript-sdk   dom-events   popup-blocker

Dojo/on and the capture phase

Is there a way to trigger an event in the capture phase (instead of the bubbling phase) with dojo/on?

2022-01-17 01:53:17    分类:问答    javascript   dojo   dom-events

Can't add listener to a SVG in Internet Explorer using SVGweb

This code works great in Firefox, but not in IE. I've read the documentation of SVGWeb (http://svgweb.googlecode.com/svn/trunk/docs/UserManual.html), but I don't find/understand the solution, any idea? window.onsvgload = function() { carga(); var mySVG = document.getElementById("mySVGObject").contentDocument; mySVG.addEventListener('click', function(evt) { alert(evt.target.id); }, false); } I'm using things like this in IE without problems: mySVG.getElementById('Color2').style.fill='#00cc00' with that code I can change colors and texts in the shape, but I cannot make the listener work in IE

2022-01-17 01:51:11    分类:问答    javascript   svg   dom-events

组合框更改其他组合框的值(Combobox change value of other combobox)

问题 我在一个表单上有两个组合框。 每个都有值是和否。我想要的是当一个被改变时,另一个得到相反的结果(如果第一个是是,另一个是否)。我需要用 Javascript 来做。 我看到了这个问题 How to change "selected" value in combobox using JavaScript? 但它仅适用于一个组合框。 我怎样才能做到这一点? LE:我需要用组合框制作这个例子。 我不能使用单选按钮 回答1 我创建了一个简单的 jsFiddle Demo。 这并不完美,只是说明了这个想法。 HTML: <select id="first"> <option value="0" selected>No</option> <option value="1">Yes</option> </select> <select id="second"> <option value="0">No</option> <option value="1" selected>Yes</option> </select> Javascript: //find the selects in the DOM var first = document.getElementById('first'); var second = document.getElementById('second'); /

2022-01-16 17:46:35    分类:技术分享    javascript   combobox   dom-events

如何在 Javascript 中移动子元素时触发一次鼠标事件?(How to fire mouse event once for moving over child elements in Javascript?)

问题 进入 DOM 元素时,会发生mouseover事件。 在当前元素周围移动鼠标时,不会发生任何事件,因为mouseover用于进入。 但是,子节点不遵守此规则。 如果将鼠标移动到子节点上, mouseover事件会一次又一次地触发,虽然没有新的事件,因为我们仍然在原来的父节点中。 请参阅此示例。 如果我们将鼠标移动到父元素上(实际上是在它的 textNode 上),没有任何新的事情发生,但是如果我们转到子元素(仍然在父元素上),它将一次又一次地触发mouseover事件。 事实上,每次鼠标进入一个元素(甚至在原始父元素内)时,它都会触发鼠标事件。 我们如何才能使mouseover一次以在整个父级( addEventListener中的原始元素)上移动? 在给定的示例中,我的意思是避免在子元素上移动鼠标时触发事件。 回答1 您真正需要的是 mouseenter 事件,它不会冒泡(与mouseover不同)。 来自 MDN: 当鼠标或其他指点设备进入分配给元素或其后代之一的物理空间时,将调度同步 mouseenter DOM 事件。 与 mouseover 类似,它的不同之处在于它不会冒泡,并且当指针从其后代的物理空间之一移动到其自己的物理空间时不会发送。 不幸的是,它没有得到广泛的支持。 一种解决方案是使用 jQuery(参见 .mouseenter())

2022-01-16 10:26:19    分类:技术分享    javascript   dom   dom-events   addeventlistener   mouseover

IE8 事件坐标(IE8 event coordinates)

问题 我似乎无法找到在 IE8 中获取事件坐标的方法,它只会触发诸如“pageX undefined”、“clientX undefined”等错误。虽然它在其他浏览器中运行良好。 这就是我想要做的: document.onmousemove=setcoord; function setcoord(e){ var xxcoord = e.pageX||(e.clientX+document.body.scrollLeft); var yycoord = e.pageY||(e.clientY+document.body.scrollTop); } 是否有任何解决方法来获得该鼠标位置? 回答1 以下似乎有效。 我不确定它是否是正确的方法: var x=event.clientX; var y=event.clientY;

2022-01-16 10:24:25    分类:技术分享    javascript   events   internet-explorer-8   coordinates   dom-events

当 Django Admin Popup(绿色加号图标)完成时,是否有事件或其他方式调用 Javascript 函数?(Is there an event or another way to call a Javascript function when a Django Admin Popup (the green plus icon) completes?)

问题 假设我们有这些 Django 模型: class Band(models.Model): name = models.CharField(max_length=256, default="Eagles of Death Metal") class Song(models.Model): band = models.ForeignKey(Band) 当使用管理员管理这些模型时, band字段与 Django 呈现的Widget作为select html 元素相关联。 Django 的管理员还在select旁边添加了一个绿色的加号图标,单击它会打开一个弹出窗口,在该窗口中会向用户显示添加新乐队的Form 。 单击此弹出窗口中的保存按钮时,新的波段名称将保存在数据库中,并自动分配给select值。 每次select值更改时,我们都依赖一些 javascript 来运行。 它当前正在侦听所述元素的change事件,当用户直接在select建议的菜单中单击一个值时,该事件可以正常工作。 遗憾的是,当通过 Admin Popup 功能填充此select时,似乎不会为select触发change事件,因为我们的回调未执行,即使元素的值实际上已更改。 与用户直接从列表中单击一个值时相比,我们可以监听另一个事件以获得相同的行为吗? 回答1 这是一个 Javascript 片段

2022-01-16 07:19:05    分类:技术分享    javascript   django   django-admin   dom-events

IE8 event coordinates

I can't seem to find a way to get coordinates of event in IE8, it just triggers errors like... "pageX undefined", "clientX undefined" etc. While it works fine in other browsers. This is what I was trying to do: document.onmousemove=setcoord; function setcoord(e){ var xxcoord = e.pageX||(e.clientX+document.body.scrollLeft); var yycoord = e.pageY||(e.clientY+document.body.scrollTop); } Is there any workaround to get that mouse position?

2022-01-16 05:43:39    分类:问答    javascript   events   internet-explorer-8   coordinates   dom-events

在 HTML SELECT 标记中禁用键盘(Disable keyboard in HTML SELECT tag)

问题 我想禁用 HTML SELECT 标记的键盘,以便用户只能使用鼠标选择选项。 我已经在onkeydown 、 onkeyup和onkeypress事件上尝试event.cancelBubble=true ,但没有成功。 有任何想法吗? 回答1 以跨浏览器的方式假设事件对象已正确初始化: function disableKey(e) { var ev = e ? e : window.event; if(ev) { if(ev.preventDefault) ev.preventDefault(); else ev.returnValue = false; } } 回答2 有人给我留下了正确的答案,然后出于某种原因将其删除,所以这里是: function IgnoreAlpha(e) { if (!e) { e = window.event; } if (e.keyCode >= 65 && e.keyCode <= 90) // A to Z { e.returnValue = false; e.cancel = true; } } <p> <select id="MySelect" name="MySelect" onkeydown="IgnoreAlpha(event);"> <option selected="selected " value=" " />

2022-01-16 04:53:05    分类:技术分享    javascript   html   html-select   dom-events