javascript - 为动态元素添加事件监听器?

标签 javascript jquery ios

在我的页面上,当您在元素上向右滑动时,该元素将会移动。我有以下代码来处理这些滑动:

window.addEventListener("touchstart", touchStart, false);
window.addEventListener("touchmove", touchMove, false);

问题是,它不仅仅影响我想要可滑动的元素。相反,如果我在页面上的任意位置滑动,它将运行 touchMove。为了解决这个问题,我尝试了:

var content = document.getElementById("content");
content.addEventListener("touchstart", touchStart, false);
content.addEventListener("touchmove", touchMove, false);

这种方法有效,但是当在 #content 上显示 div(通过用户交互)时,事件仍然会触发。

我考虑的另一个解决方案是将这些事件绑定(bind)到 #content 中的元素,这些元素应该启用滑动。问题是,这些元素是动态添加到页面的,因此当在页面加载时调用上面的函数时,不会考虑这些元素。然后我考虑使用 jQuery 的 .on() 方法,如下所示:

$("#content .row").on("touchmove", touchMove, false);

但这根本没有调用 touchMove

有没有更好的方法来完成这一切?当事件监听器仅分配给 #content 时,在不是 #content 子元素的元素上调用 touchMove 是否有意义?

最佳答案

通过将事件附加到文档并为所需元素提供过滤器来尝试这种方式。

$(document).on("touchmove", "#content .row", touchMove);

根据评论编辑,可以这样获取事件

$(document).on("touchmove", "#content .row", function(event){
       alert(event.target.id);
});

关于javascript - 为动态元素添加事件监听器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12984175/

相关文章:

javascript - 图像在 mouseenter 事件 JQuery 上不断闪烁

javascript - ng-model 不适用于 md-menu angularjs Material

php - 关于如何将 JS onchange 事件传递给 PHP 的建议

javascript - 使用 getJSON 获取 json 数据

ios - 为什么 Swift 的字符类型不是 Hashable?

ios - MagicalRecord saveInBackgroundWithBlock 不保存对象

javascript - 如果滚动到达每个 div,则触发 AJAX jQuery

jquery - 如何在没有水平滚动的情况下在 Bootstrap 中适应视频 100 宽度 100 高度

javascript - jqxTextArea的字体可以修改吗?

ios - ExpandableLable 仅适用于系统字体