TOGOUTECH

event-handling

全部标签

javascript - 如何通过引用 JavaScript 中的事件处理程序来传递变量?

我用JavaScript模拟了一个类;它的代码在这里:functionmyclass(){this.count;this.init=function(){$("div.mybtn").click({n:this},function(e){e.data.n.count++;});}this.getCount=function(){alert(this.count);}}然后我创建了这个类的一个实例并执行了它的方法init(),但是当我点击任何div.mybtn元素时,它并没有增加值this.count.对象this似乎是按值而非引用传递给事件处理程序的。如何通过引用将变量

javascript - 如何将带有参数的事件处理程序添加到 Javascript 中的元素数组?

我有一个完全依赖于JavaScript和Ajax的三步流程来加载数据并使流程从一步到下一步动画化。更复杂的是,步骤之间的过渡(向前和向后)是动画的:-(。随着用户在流程anchor中的进展,显示当前步骤和之前的步骤。如果他们点击之前的步骤,那么它将把他们带回到上一步。现在,如果您从第1步开始,整个过程(向前和向后)都可以正常工作,但如果您直接跳到第3步,那么第1步和第2步的anchor也会执行与第3步相同的操作。这是循环遍历用户将要进行的当前步骤的所有步骤的代码部分,并依次显示每个anchor并将适当的函数分配给点击事件:for(vari=0;i<profile.current+

javascript - Vuejs - 冒泡自定义事件

有没有办法在组件内使用组件时允许事件冒泡?我的应用程序是一个动态菜单。动态菜单是一个组件(dyn-menu),它为每个menu-item使用本地组件(<li>)元素。每个<menu-item>有一个与之关联的点击处理程序,它发出一个自定义事件(在完整实现中具有菜单项的ID)。但是应用程序看不到<menu-item>发出的事件因为它们没有冒泡。有没有办法允许<menu-item>组件,它是<dyn-menu>的本地组件组件,发出事件并仍然允许vapp查看和处理事件?我是Vuejs的新手,所以我可能遗漏了一些明显的东西。有可能我试

javascript - 使用 Jquery 允许常规 JS 对象上的事件

我有一些javaScript类(ctor+prototype方法),我希望它们的实例能够发出evnet。这样使用这个类的代码就可以像这样:varinstance=newSomeObject();instance.on('customEventName',function(event){do_stuff()}我在JQUery环境中工作,对于我使用的.trigger和.on的UI元素,这对我来说非常有用,我一直在徘徊什么是实现与常规对象相同的感觉的最佳方式。我正在考虑根据自定义事件名称设置$.Callbacks()对象的映射,并根据对象的原型(prototype)添加.on

javascript - 处理 z-index 图层上的点击事件

我正在构建的map应用程序中有2个z-index图层。单击图层放大时出现问题。单击处理程序位于底层z-index图层上,我不希望它在单击覆盖图层中的控件时触发。我遇到的问题是,无论如何都会引发事件,但是当单击顶层上的某些内容时,事件的originalTarget属性不是底层中的图像。无论如何要改变这个? 最佳答案 这叫做事件冒泡,你可以通过event.stopPropagation()方法(IE中的event.cancelBubble())来控制它。您还可以通过从元素上的onwhatever属性调用的处理程序返回true/false

javascript - 在MVC中防止循环事件的优雅方法?

问题简而言之:在MVC中,您如何区分复选框单击(或选择框或列表框更改)与人为“Controller,修改模型”的意思,以及Controller的复选框单击(或选择框或列表框更改),意思是“我”我因为模型已经改变而更新View”?示例:我有一个JS应用程序(都是一个大的HTML+JS页面;它背后有一个服务器,AJAX正在运行,但这对示例来说并不重要)它具有由“边缘”连接的“顶点”概念。UI允许您在map上添加和删除顶点,以及启用或禁用顶点对之间的边。有两种方法可以禁用从顶点A到顶点B的边:单击边缘使“边缘详细信息”窗口为您提供“禁用此边缘”按钮;或单击顶点A(或B)以使“顶点详细信息”窗

javascript - 音频文件在线时,如何在HTML5音频对象中设置currentTime?

我有一个带有向前/向后跳过10秒按钮的JavaScript音频播放器。我通过设置音频元素的currentTime来做到这一点:functionPlayer(skipTime){this.skipTime=skipTime;this.waitLoad=false;//initialisemainnarrationaudiothis.narration=newAudio(getFileName(dynamicNarration));this.narration.preload="auto";this.narration.addEventListener('canpl

javascript - 阻止 Chrome 中的默认 'ctrl pageup' 和 'ctrl pagedown'

我有一些代码可以为网络应用程序创建热键。所有热键在IE和Firefox中都可以使用,但是Ctrl+PgUp和Ctrl+PgDn在IE和Firefox中不起作用Chrome。在四处寻找答案并编写一些自定义测试代码后,我相信我已经确定这是因为在Chrome中,这些事件是在keyup而不是keydown上触发的。这些事件的默认Chrome处理程序正在触发而不是我的(或至少首先)并将浏览器切换到下一个或上一个选项卡。如果我在我的应用程序中使用热键切换回选项卡,那么我的处理程序会捕获该事件。所以我的问题是,有没有办法在Chrome中捕获这些事件并阻止默认功能运行?有问题的代码是://Thesew

javascript - jQuery(事件): watch element style

假设有这样的元素<divclass="watch-me"style="display:none;">WatchMePlease</div>我们可以看到上面样式的元素是display:none,我如何制作脚本来观察这个元素。当该元素样式更改为display:block时,将触发一些代码。非常感谢... 最佳答案 据我所知,唯一的方法就是使用计时器。我创建了一个小的jQuery插件(是的,就在这里,现在),它针对jQuery集执行此操作:编辑这个插件现在在GitHub上:https

javascript - 无法使用 jquery 的单击事件处理程序来检测右键单击

在尝试使用jquery检测鼠标右键单击时,我注意到单击鼠标右键似乎不会触发click事件处理程序,而mousedown或mouseup事件处理程序会触发。例如,右键单击测试div后,以下警报“正在测试!”:$('#test').mousedown(function(e){alert('testing');});但是,以下不会:$('#test').click(function(e){alert('testing!');});有人知道为什么吗? 最佳答案 当你按下mous