问题标签 [event-delegation]

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 回答
66 浏览

javascript - 关于直播活动的问题

我只是在阅读http://api.jquery.com/event.stopPropagation/

由于 .live() 方法在事件传播到文档顶部后处理事件,因此无法停止实时事件的传播

我对这个陈述有点困惑,有人可以用一些例子解释一下吗?

0 投票
1 回答
715 浏览

jquery - 渲染新页面后,在 Yii 中将事件附加到 CPagination 更改

这可能是一个新手问题,所以我希望它很容易回答!我已经为此苦苦挣扎了将近一个星期..非常感谢任何帮助。

我有一个 CListView,我正在使用集成的 cpagination。我有一个由 onload 事件触发的 javascript 函数,它根据特定条件绘制此 clistview 的某些项目。但是,当用户更改页面时不会触发此事件,因此很明显这是一个问题:因为项目仅在页面第一次加载时才被绘制。

现在,我已经做到了这一点:我学会了如何处理 jquery 事件,所以我有了这个:

这样,每次单击下一个、上一个或任何其他分页按钮时,都会调用此函数。弹出警报,我什至在paintMyLigas() 函数中添加了一些警报,这些警报也会弹出。但是,我的物品不会再次上漆。我相信这可能是因为在呈现新页面(cpagination)之前触发了此事件。这是我被困的地方(本周第 n 次):我怎样才能让这个事件在之后触发?或者谁能​​指出我能够解决这个问题的任何其他方向?我需要帮助!!:)

0 投票
1 回答
2040 浏览

jquery - 大型列表上单击事件的 jQuery 委托性能 - 如果动态添加更多元素会减慢速度?

我有一个这样的项目的视觉列表:

http://jsfiddle.net/viatropos/XCe3T/1/

在真正的应用程序中,我只加载了 200 个项目。但问题是click事件需要将近一秒钟来调用处理程序,即使只有 200 个项目。mouseover无论列表中有多少项目,事件回调都会立即执行。

我的问题是,无论页面上有多少元素,委托方法不应该一样快吗?我正在做的就是:

如果您转到上面的 jsfiddle 示例和 Web 检查器,然后单击呈现结果中的链接,它将添加 200 个以上的元素。注意你添加的元素越多,它变得越慢。奇怪的是,如果您从 6000 个项目开始,委托/单击的执行速度比从 2000 个开始并一次添加 200 个直到达到 6000 的情况要快得多。

你有什么想法,我如何提高 jQuery事件delegate方法的性能click?css 是否会导致速度变慢(可能样式太多或布局未优化)?

0 投票
2 回答
378 浏览

javascript - 没有实际事件的 JavaScript 事件委托?


希望我的标题不会太混乱。如果有更好的方法来命名我的问题,请告诉我。
我有 jQuery 函数将背景颜色应用于表中的奇数行,并在悬停时将颜色更改为红色。但是如果我动态编辑表格,我的 jQuery 就不再工作了。
我阅读了很多关于 JS 事件委托的内容,但找不到任何关于如何在没有实际事件的情况下完成这项工作的信息......

有没有办法在我编辑表格后让它工作。

编辑:
这必须在 IE8 上工作

0 投票
3 回答
1728 浏览

javascript - 全局 Javascript 链接处理程序

这是我所拥有的:

  • 在单个 HTML 页面(称为它myapp.req)中运行的 Web 应用程序,内容通过 AJAX 来来往往
  • 应用程序可以通过一个链接从外部进入,例如myapp.req?id=123,应用程序会打开一个标签,其中包含 id 123 处的项目
  • 页面内容多为用户内容,很多时候有应用内链接myapp.req?id=123
  • 问题是单击链接以myapp.req?id=123重新加载浏览器,并删除用户已加载的任何内容或状态

我想要的是能够捕获目标为 的链接点击myapp.req?id=123,而不是重新加载页面,只需打开项目 123 的选项卡,留下当前加载的任何其他内容。但是,如果链接是针对外部网站的,那么显然只需让浏览器离开即可。

所以我的问题真的是:我可以有一个全局链接处理程序来检查我是否要处理链接点击,如果是,运行一些 Javascript 并且不要离开?

我知道我可以找到所有<a>s 并添加侦听器,但我希望该解决方案只需要设置一次侦听器,而不是每次在页面上加载新内容时都添加链接处理程序。由于可以通过多种不同方式加载内容,因此向所有这些地方添加代码会很麻烦。

那有意义吗?

0 投票
2 回答
268 浏览

java - 使用 Android SDK 中的按钮触发从一个类到另一个类的方法

如果问得太多,我很抱歉,但我找不到足够清楚的东西。

我正在为安卓开发一个小游戏引擎。我已经实现了一个游戏手柄类来控制触摸屏。如果有人触摸正确的区域,游戏手柄类会绘制一个模拟摇杆,并且还会绘制侧面的按钮。

问题是,简单来说,我有作为 LEVEL 类和 GAMEPAD 类的主类 GAME。

在 GAMEPAD 代码中,当有人按下\释放按钮时,我可以触发事件。问题是我不想通过在 GAMEPAD 类中处理按钮来触发主 GAME 类的某些东西。

在 C# 中,我会使用事件和委托。

在Java中我不知道..我希望gpad调用一个注册的方法。

这就是我希望在 GAME 主课上实现的目标。

.. void onGpadClick (e EventArgument) { if (e.Button==Button.A&&e.ButtonState==ButtonState.Pressed) Shoot();

}

提前致谢

0 投票
3 回答
910 浏览

javascript - 在窗口级别侦听某些元素上的事件 - Javascript,没有库

我想<p>在窗口或文档级别侦听元素上的事件,因为此类元素太多,无法为每个元素附加 onclick 事件处理程序。

这就是我所拥有的:

我需要关于上面代码的建议,它好吗?而且,如何检查单击的元素是否是<p>除检查之外的元素nodeName?例如,如果<p>元素包含一个<b>元素并且被单击,则 nodeType 将b不是p

谢谢你。

0 投票
2 回答
762 浏览

jquery - 具有连续调用的jQuery事件委托变量范围

使用 jQuery 1.6 中的事件委托,您可以响应冒泡到共同父级的事件。

一个示例实现是这样的:

当您想在页面上绑定许多事件触发器时,这种结构可以很好地工作。但是,我注意到一种奇怪的行为,并想知道是否有人可以在以下范围内启发我:

如果你在'a'之前定义了一个变量' var bar;'并在'a'中使用它并且'a'需要很长时间才能执行,那么如果'click'被第二次触发,'bar'变量是否会被重新分配值还是会创建一个新的?

问题的原因是我有一个“未完成”的动画,其中动画需要 1.3 秒才能完成。如果我触发两个连续的单击事件,则目标和类型设置正确,但第二个动画似乎影响了第一个动画,并且两个范围似乎对彼此可用。

我还没有完成动画,所以我没有一个工作集可以在 jsFiddle 中上线,但是这里有没有我应该研究的范围的经验法则,或者有人可能已经找到了对可用范围的更清晰解释?

编辑: 在上面,我添加了类似于我正在使用的情况。在上面的简化情况下,'bar' 的值在 2 次连续调用中仍然保持预期值,但在更复杂的情况下,我正在处理(仍然),除非我专门将参数传递给回调函数,否则仍然存在允许 2 次连续调用更改参数值的条件,以便回调看到由后续调用创建的值 - 而不是在其自己的触发调用中逻辑设置的值。如果有人可以在简化的示例中复制这种效果,我将不胜感激。我正在缩减我的函数以尝试生成一个复制它的 jsFiddle。

谢谢,AE

0 投票
5 回答
2771 浏览

jquery - Jquery - 将委托绑定到所有“a”标签

click()当您单击 div 中的链接时,我尝试阻止 jq 。

HTML

JS

这段代码很好用,但我的内容是动态的,所以我需要一个delegate()解决方案。

下面的代码不起作用。但为什么?有什么问题?

示例
http://jsfiddle.net/Lf3hL/13/

0 投票
1 回答
129 浏览

events - YUI3 事件委托在 FF2 中不起作用

我正在使用 YUI 3.3.0。事件委托在 FF2 中不起作用。有什么线索吗?提前致谢。