问题标签 [dom-events]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3076 浏览

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

我有一个完全依赖于 JavaScript 和 Ajax 的三步过程来加载数据并动画化从一步到下一步的过程。更复杂的是,步骤之间的过渡(向前和向后)是动画的:-(。当用户通过流程锚点的进度出现时,会显示当前步骤和之前的步骤。如果他们点击了之前的步骤,那么它会将他们带回到上一步。

现在,整个过程(向前和向后)正常工作,如果您从第 1 步开始,但如果您直接跳到第 3 步,则第 1 步和第 2 步的锚点也会执行与第 3 步相同的操作。

这是代码的一部分,它循环遍历所有步骤直到用户将要执行的当前步骤,并依次显示每个锚点并将适当的函数分配给点击事件:

我知道问题在于传递 action 和 dao_id 参数的方式。我也尝试过传递 profile.steps[i].action 和 profile.steps[i].dao_id 但在这种情况下 profile 和 i或者至少我不在范围内。

如何做到这一点,以便我可以为每个步骤正确分配 action 和 dao_id 的参数?(如果有什么不同,我们使用的是 Prototype 和 Scriptaculous)

0 投票
1 回答
391 浏览

javascript - 为什么我的自定义拖放脚本失败?

我目前正在尝试编写自己的 JS 拖放脚本(出于好奇和无聊,我知道使用框架会容易得多)。我的目标是一个完全运行的 Firefox3 版本,IE 现在可以等待。

我刚刚陷入了一个奇怪的错误。当我第一次拖动 div 时,它工作正常。当我第二次拖动它时,松开按钮后它不会粘住,我必须再次单击才能将其放下。第三次和随之而来的阻力再次完美无瑕地工作(!?!)。

请参阅[原始页面][1](正如我所说,目前仅 FireFox)以了解会发生什么。整个事情是作为一个带有两个事件(onmousedown 和 onmouseup)的 div 完成的,使用 document.captureEvents(Event.MOUSEMOVE) 进行中间移动。该脚本可以在 [here][2] 中找到(忽略底部的 ajax 部分,它为一些额外的技巧做好了准备,如果我把它拿出来,这个错误仍然存​​在)。

如果您过去遇到过类似的事情,或者您在某处发现错误,请告诉我。我知道可能有更好的方法来解决整个问题,但我正在特别寻找一种方法来使我的方法发挥作用。

编辑:Chrome 和 Safari 工作。

编辑:使链接脱机,处理新版本。

0 投票
2 回答
868 浏览

javascript - 是否有任何用于检查键盘/鼠标活动的预构建 Javascript?

我需要一个 Javascript 来监视键盘和鼠标事件以跟踪用户在页面上花费的时间。具体来说,通过键入或用鼠标移动/单击来主动使用页面。

我想我会问是否有人知道一些可能对我有用的东西以节省一些时间。否则,Javascript 和阿司匹林我来了……哈哈

0 投票
2 回答
1498 浏览

javascript - 使用 RegisterStartupScript() 添加的脚本何时执行?

使用Page.ClientScript.RegisterStartupScript()添加到页面的脚本何时实际运行?MSDN 声明“当页面完成加载但在OnLoad引发页面事件之前”,但这并没有太多细节。

例如,添加的脚本是否可以RegisterStartupScript假设 DOM 树已经构建?不同浏览器实现之间的行为是否不同?

0 投票
7 回答
36742 浏览

javascript - 避免 Javascript 竞争条件

我的用户看到的基本上是一个精简版的电子表格。网格中的每一行都有文本框。当他们更改文本框中的值时,我正在对他们的输入执行验证,更新驱动网格的集合,并重新绘制页面上的小计。这一切都由OnChange每个文本框的事件处理。

当他们单击Save按钮时,我正在使用按钮的OnClick事件对金额执行一些最终验证,然后将他们的整个输入发送到 Web 服务,并保存它。

至少,如果他们通过表单切换到Submit按钮,就会发生这种情况。

问题是,如果他们输入一个值,然后立即单击保存按钮,在完成SaveForm()之前开始执行UserInputChanged()——竞争条件。我的代码不使用setTimeout,但我用它来模拟缓慢的UserInputChanged验证代码:

我认为我无法加快验证代码的速度——它非常轻量级,但显然速度很慢,以至于代码会在验证完成之前尝试调用 Web 服务。

在我的机器上,~95ms 是在保存代码开始之前验证代码是否执行之间的幻数。这可能更高或更低,具体取决于用户的计算机速度。

有谁知道如何处理这种情况?一位同事建议在验证代码运行时使用信号量,并在保存代码中使用繁忙循环等待信号量解锁 - 但我想避免在我的代码中使用任何类型的繁忙循环。

0 投票
20 回答
400377 浏览

javascript - 如何捕获 form.submit 的响应

我有以下代码:

我想捕获的 html 响应form1.submit?我该怎么做呢?我可以向 form1.submit 方法注册任何回调函数吗?

0 投票
3 回答
502 浏览

javascript - 如何使用 Javascript 通过我的网站找出用户点击了 3 次

JavaScript 中有什么方法可以找出用户在同一个域中点击了 2 次或更多次?

用户在网站上的任意位置单击 3 次后,我需要弹出一个窗口。一键单击后我知道该怎么做 - 使用document.referreror addEventListener,但后来我迷路了。

我需要能够捕获所有点击事件(不仅是链接)并计算它们的东西。

0 投票
5 回答
7337 浏览

javascript - 在 Mozilla Firefox 上按下回车键时触发按钮事件

此代码适用于 IE7,但不适用于 Mozilla Firefox。请帮我在按键时引发按钮事件Enter

0 投票
3 回答
15439 浏览

javascript - 带有表格行的 Javascript Onclick

我的 JScript 代码有问题。我正在尝试遍历表中的所有行并添加一个onclick事件。我可以onclick添加事件,但有几个问题。

第一个问题是所有行最终都设置了错误的onclick事件参数。

第二个问题是它只适用于 IE。

这是代码摘录:

该表位于以下位置...

http://www.blackcanyonsoftware.com/OrderTracker/testAJAX.html

每一行的id依次是... 95, 96, 94...

出于某种原因,当shanesObj.tableRowEvent被调用时,onclick将为所有具有最后一个值 id 的行设置在循环 (94) 上经过迭代的所有行。

我在页面上添加了一些警报来说明问题。

0 投票
5 回答
52835 浏览

javascript - 如何禁用标签的标签