【JS】动态添加的元素绑定点击事件在移动端不生效

这篇具有很好参考价值的文章主要介绍了【JS】动态添加的元素绑定点击事件在移动端不生效。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题:使用js动态添加的元素,给该元素绑定了点击事件,在PC端一切正常触发,但是在移动端却无法触发方法。

原因:在移动端,绑定点击事件需要注意使用 touch 事件,而不是鼠标的 click 事件。

常用的触摸事件有:- touchstart:手指触摸屏幕时触发
- touchmove:手指滑动屏幕时连续触发
- touchend:手指离开屏幕时触发

- 避免使用click事件,这是为鼠标设计的
- 对于触屏设备,要区分不同手指的触摸事件
- 可以同时绑定touch和click事件,实现移动端和PC端的兼容

// 方法一:通过addEventListener绑定
element.addEventListener('touchstart', function(){
  //点击处理
}, false); 

// 方法二:直接内联绑定
<div ontouchstart="touch(event)"></div>  

function touch(event) {
  // 点击处理
}

 蜂鸟视图的室内地图动态添加的DomMarker无法在移动端进行点击触发的解决方法文章来源地址https://www.toymoban.com/news/detail-558204.html

		// 显示选择起点终点的选项卡
		function showDomMarker(position) {
			if (domMarker) {
				domMarker.remove();
				domMarker = null;
			}
			domMarker = new fengmap.FMDomMarker({
				x: position.x,
				y: position.y,
				domHeight: 80,
				domWidth: 200,
				anchor: fengmap.FMMarkerAnchor.BOTTOM,
				content: `<div style=" display: inline-block; width: 200px; text-align: center;">
		<div style="display: flex;margin-bottom: 10px; border-radius: 6px; background-color: white; text-align: center;">
			<span id="clickStart" style="flex: 1; height: 30px; color: white;padding: 10px 16px; line-height: 30px; background-color: #2F65EE; border-bottom-left-radius: 6px; border-top-left-radius:6px; " onclick=setStart() ontouchstart=setStart()>作为起点</span>
			<span style="flex: 1; height: 30px; padding: 10px 16px; line-height: 30px;" onclick=setEnd() ontouchstart=setEnd()>作为终点</span>
		</div>
		<div style="background-image: url('https://developer.fengmap.com/fmAPI/images/navi/marker.png');display: inline-block; width: 32px; height: 32px;background-size:100%;"></div>
		</div>`,
			});
			var level = position.level;
			var floor = map.getFloor(level);
			domMarker.addTo(floor);
		}

到了这里,关于【JS】动态添加的元素绑定点击事件在移动端不生效的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue子元素点击事件与父元素点击事件冲突 子元素点击事件不触发

    在vue项目中,子元素有点击事件,父元素也有点击事件,当点击子元素时往往触发的是父元素的点击事件,产生冲突,怎样解决这个问题呢? 解决方法:使用vue中的事件修饰符 vue为 v-on 提供了 .stop、.prevent、.self、.once等事件修饰符,当遇到子元素与父元素的事件冲突,就要

    2024年02月14日
    浏览(37)
  • div绑定键盘点击事件

    为箭头绑定绑定键盘方向键 键盘上各按键对应的英文名

    2024年02月07日
    浏览(47)
  • 【微信小程序】通过绑定点击事件来实现点击交互

    在微信小程序中,可以通过绑定点击事件来实现点击交互。以下是点击事件的实现步骤: 在WXML文件中,找到需要绑定点击事件的元素,例如按钮、图片等。 在该元素上添加 bindtap 属性,并指定一个对应的事件处理函数,例如: 在对应的页面或组件的JS文件中,定义事件处理

    2024年02月14日
    浏览(56)
  • Unity(六)--绑定鼠标点击事件(左键、右键、中键)

    新建一个脚本buttonEvent:

    2024年02月01日
    浏览(52)
  • 在uniapp中为自定义组件绑定点击事件点击后没有效果

    使用uniapp时,封装了一个Card的组件,为这个Card组件加上点击事件 @click=\\\"handleClick\\\"事件时,事件没有触发。 点开微信小程序生成后的源码,可以看到 @click的事件 变成bindClick 了。正确的点击事件应该是 bindtap ,如下图中view上面绑定事件。 这个时候可以修改组件上面的写法,

    2024年02月07日
    浏览(42)
  • 【精简】Vue 一个@click时间绑定多个点击事件

    多个方法之间使用逗号分隔(经测试其实逗号和分号都可以) 经过debugger测试 好像m1和m2执行是按@click写的顺序来执行的并非异步

    2024年02月02日
    浏览(52)
  • 【无标题】微信小程序如果VIEW绑定点击事件

    微信小程序如果VIEW绑定点击事件,而且绑定的VIEW中存在许多子元素,会出现一下问题: 在回调函数中使用e.target来获取消息,虽然触发了点击事件,但是传递的消息是空值,只有点击在空白区域才会返回有效值。 解决方法:使用e.currentTarget来获取消息。 js回调函数: wxml代

    2024年02月08日
    浏览(49)
  • 小程序解决view 绑定 点击事件不生效的问题

    错误代码: view class=\\\"title_container_selected\\\" wx:for=\\\"{{guest_title_array}}\\\" wx:key=\\\"item\\\" bind:tap=\\\"titleContainerTapped\\\" data-title=\\\"{{item.title}}\\\" 改正之后的代码: view class=\\\"title_container_selected\\\" wx:for=\\\"{{guest_title_array}}\\\" wx:key=\\\"item\\\" catch:tap=\\\"titleContainerTapped\\\" data-title=\\\"{{item.title}}\\\"

    2024年04月29日
    浏览(44)
  • Qt UI上的按钮和创建的按钮绑定 click 点击事件

    如果在ui 上 的按钮 绑定点击事件,按钮鼠标右键转到槽,点击clicked(),即可创建函数。 动态创建的按钮需要 用 connect 连接

    2024年02月15日
    浏览(49)
  • Objective-C 父元素和子元素的点击事件

    (需求1)pageA一开始是【默认模式】,点击父元素view(包括【搜索】文字),进入【搜索模式】; (需求2)在pageA中,点击【取消】文字时,本身文字修改为【搜索】并且返回【默认模式】   使用UIGestureRecognizerDelegate的gestureRecognizer:shouldReceiveTouch:实现效果

    2024年02月11日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包