【Web前端问题】屏蔽所有事件

菜鸟在研究别人的代码,在测试一个功能,用上如下代码,来看下我点击的是什么元素

$(document).click(function(e) { // 在页面任意位置点击而触发此事件

console.log($(e.target));       // e.target表示被点击的目标

})

然而,其他都有输出,就有个区块元素在手机端单击并没有输出,在电脑端单击有正常输出,有什么代码可以拦截么?

忘记补充下代码了:

<ul id="d41d8cd98f00b204e9800998ecf8427e8bcbe7d8b5b2071f2a8093e3df942e36" data-name="AssetInfo[images][]" data-boxid="d41d8cd98f00b204e9800998ecf8427e8bcbe7d8b5b2071f2a8093e3df942e36" data-multiple="1">

<li class="upload-box ">

<i class="fa fa-cloud-upload"></i>

<div class="upload-box-bg hide">

<div class="upload-progress first">

<span class="badge bg-green">0%</span>

</div>

<a class="second cancel">取消上传</a>

</div>

</li>

</ul>

TIM截图20191022111238.jpg
而且奇怪的是,红色外围框点击触发的事件console.log($(e.target))打印的是 li.upload-box,点击的是该审查元素的范围外的区域。
真是抓狂!
进展1---------------------------------
经过指导,使用了如下代码,手机端点击终于有反馈了

$(document).on('touchstart', fn)

但是还是有疑问,本例中,有些元素(如li,div)在手机端点击是能触发click事件的, 有些则要touchstart。点击子元素未触发父元素绑定的事件
新的待解决问题1---------------------------------
现在该解决为啥不弹出文件选择框了,代码如下

// 触发上传(移动版)

$(document).on("touchstart", ".upload-box", function (e) {

let boxId = $(this).parent().attr('data-boxId');

$('#upload-' + boxId + ' .webuploader-container input').trigger('click');//问题在这里,click换touchstart,也一样没反应

});

问题代码:手机端下,没有触发<input type=file /> 弹出文件选择框。请问如何写?

回答:

手机端可能没有触发click吧。换mousedown试试,或者touchstart

以上是 【Web前端问题】屏蔽所有事件 的全部内容, 来源链接: utcz.com/a/142357.html

回到顶部