草庐IT

事件绑定

全部标签

javascript - jQuery - 节点属性更改时的事件

我有一个带有外部javascript库和我自己的额外代码的网页。外部库无法更改。它操作dom元素,添加新元素,更改属性(例如src在某些节点上,等等)。我正在使用jQuery。当节点的属性值发生变化时,是否会触发任何事件处理程序?即无论如何我可以检测到(在jQuery中)当src时的被改变(被别人?) 最佳答案 你可以去找jQuerywatchplugin检测属性的变化。也看看这篇文章:http://darcyclarke.me/development/detect-attribute-changes-with-jquery/

javascript - JS onunload 事件并不总是有效

我想计算访问者在某个页面上花费了多少时间并将其存储在我的MySQL数据库中。我想像这样在window.onload上启动一个计时器:window.onload=startCount;window.onunload=sendCount;varb=0;vary;functionstartCount(){document.getElementById('livecount').innerHTML=b;b=b+1;y=setTimeout("startCount()",1000);}在访问者离开页面(window.onunload)后,我通过XMLHttpRequest将时间发送到PHP文件,

javascript - 实时事件和查询元素是否将响应事件

我想问一个元素是否会响应实时事件,而不实际触发该事件。HTMLClickme!JS$('#foo').live('mousedown',function(){console.log('triggeredmousedownevent');}if($('#foo').__willRespondToLiveEvent__('mousedown')){console.log('#fooiswiredupproperly');}这是一个有点简单和人为的例子,但我正在寻找一个真正适用于__willRespondToLiveEvent__伪代码的替代品。jQuery是否可以在不实际触发事件的情况下吐

javascript - 如何从 javascript 触发服务器端事件?

如何从客户端JavaScript触发服务器控件事件? 最佳答案 要在客户端事件上调用服务器端方法,您需要执行以下操作:1-创建服务器端方法:voidDoSomething(...){...}2-实现System.Web.UI.IPostBackEventHandler.RaisePostBackEvent,它接受一个字符串参数(您可以将名称分配给该参数的值)。:publicvoidRaisePostBackEvent(stringeventArgument){DoSomething(...);}3-编写一个脚本来触发回发:funct

javascript - 关于现场事件的问题

我刚刚在读http://api.jquery.com/event.stopPropagation/Sincethe.live()methodhandleseventsoncetheyhavepropagatedtothetopofthedocument,itisnotpossibletostoppropagationofliveevents我对这个说法有点困惑,有人可以用一些例子来解释一下吗? 最佳答案 Live方法将处理程序绑定(bind)到文档,并从event.target属性中识别哪个元素触发了事件。所以实际的处理程序位于顶部

javascript - jQuery 仅在附加 jQuery 时触发 keyup 事件

使用jQuery触发keyup事件真的搞砸了。这是一个干净的例子http://jsfiddle.net/xQcGM/2/当我输入任何input时,它们都会触发事件,但是当我尝试以编程方式触发它时($(element).trigger('event'))只有第二个被触发,但我希望两者都被触发。我哪里遗漏了什么?UPD我无法更改附加处理程序的方式! 最佳答案 触发事件的原生方式是调用dispatchEvent.不幸的是,这个方法没有出现在jQuery'ssource中的任何地方。.所以我猜你必须自己创建事件对象并手动发送它们。这是一个更

javascript - 如何使用jquery绑定(bind)ctrl+enter到ajax表单提交

当用户在反馈输入区域按下ctrl+enter时,以下代码将提交一个ajax表单。它工作正常-但只有一次。我需要将此功能绑定(bind)到评论表单,以便它持续存在并允许多次提交。换句话说-表单在每次提交后被清除并呈现给用户。但是,以下代码仅适用于第一次提交,因此ctrl+enter不适用于第二次提交。$('#comment_body').keydown(function(e){if(e.ctrlKey&&e.keyCode===13){return$('#comment_submit').trigger('submit');}});我已经尝试过.live和.bind,但无法获得允许重新提

javascript - 如何计算事件的 javascript 超时?

我正在使用Selenium测试一个使用Dojo的网络应用程序,它使用java脚本来显示某些元素。我想等到所有元素都显示完毕后再尝试操作页面,但我遇到了麻烦。我已经开始等待dojoinFlight变量为0,这表示所有ajax都已完成。这并不总是有效,因为它似乎会在超时后做一些事情。我也曾多次尝试寻找该元素,但这不太好,因为以后可能会有一些javascript以某种方式使用该字段。所以基本上我想要一个方法(至少在firefox中)来查询等待在setTimeout(或setInterval)上运行的javascript我什至可以处理通过我自己的函数包装内置调用的方法只是为了跟踪这一点。任何想

javascript - 小部件加载事件上的 Dojo

我想知道Dojo表单小部件何时被解析或准备就绪,以便我可以对其进行动态自定义。我试图通过使用dojo.connect()方法来实现这一点。但是,我不确定要听什么事件。是onLoad还是onStartup或者..?这是我所做的,但它没有触发:dojo.connect(dijit.byId('myWidget'),'onStartup',function(evt){console.debug("test");}请注意,dijit.byId('myWidget')部分会正确返回对象,所以这不是问题所在。 最佳答案 这在某种程度上取决于您要

javascript - 从 ExtJS 4 中的表单卸载/取消绑定(bind)记录的正确方法是什么?

我想允许用户从ExtJS4中的相同表单创建新记录和编辑现有记录。我正在使用ExtJS4.0.7。加载记录对我来说很容易。varform=Ext.ComponentQuery.query('#myForm');form.loadRecord(record);但是如果我想重新开始,没有办法卸载它!至少,我找不到合适的方法。我已经研究了几个小时,甚至查看了一些核心Ext代码来寻找答案。我能想到的最好的“卸载”记录是:form._record=null;如果我没有明确地将_record声明为null,Ext将始终尝试更新存储在那里的记录。form.reset();也不会清除加载的记录。是否有“