【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>
而且奇怪的是,红色外围框点击触发的事件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