电脑端正常,手机端js为什么没触发事件

水人 发布于 2019/10/25 09:37
阅读 184
收藏 0

开源之夏第三届火热来袭,高校学生参与赢万元奖金!>>>

如题,下面是部分代码 

// 触发上传(移动版)
$(document).on("touchstart", ".upload-box", function (e) {
    let boxId = $(this).parent().attr('data-boxId');
    alert('111111111');//正常弹出
    $('#upload-' + boxId + ' .webuploader-container input').trigger('touchstart');//问题代码
    $('#ceshi').tiger('click');//弄个独立的inputfile 无效
    document.getElementById('ceshi').click();//尝试原生写法也无效
});
<!--这段是需要手工点击-->
<ul id="d41d8cd98f00b204e9800998ecf8427ed9a9c60507066cd8d83e6a8028ae79ca" data-name="AssetInfo[images][]" data-boxid="d41d8cd98f00b204e9800998ecf8427ed9a9c60507066cd8d83e6a8028ae79ca" data-multiple="1">
    <li class="upload-box ">
        <a class="fa fa-cloud-upload upload-box-immediately" href="javascript:"></a>
        <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>
<!--专门弄个input file放这里测试-->
<input type="file" id="ceshi">

<!--本意想触发这里面的input弹出文件选择框-->
<div style="filter:alpha(opacity=0);opacity:0;width: 0;height: 0;"
     id="upload-d41d8cd98f00b204e9800998ecf8427ed9a9c60507066cd8d83e6a8028ae79ca">
    <div class="upload-album-d41d8cd98f00b204e9800998ecf8427ed9a9c60507066cd8d83e6a8028ae79ca webuploader-container">
        <div class="webuploader-pick"></div>
        <div id="rt_rt_1do085n39osc1pppsn2hs5s612"
             style="position: absolute; top: 0px; left: 0px; width: 1px; height: 1px; overflow: hidden;">
            <input type="file" name="file" class="webuploader-element-invisible" multiple="multiple" accept="image/*"><!--就想弹出这个-->
            <label style="opacity: 0; width: 100%; height: 100%; display: block; cursor: pointer; background: rgb(255, 255, 255);"></label>
        </div>
    </div>
</div>

 

加载中
0
Kit_lee
Kit_lee

$('#ceshi').tiger('click');

写错了吧,应该是$('#ceshi').trigger('click');

所以跑$('#ceshi').tiger('click');会报错,导致下一句的原生的document.getElementById('ceshi').click();中止执行了?

Kit_lee
Kit_lee
回复 @水人 : <input type="file">没有默认的ontouchstart事件,只有onclick事件,你使用trigger('touchstart')是没有效果的
Kit_lee
Kit_lee
回复 @水人 : 你将$('#upload-' + boxId + ' .webuploader-container input').trigger('touchstart');换成.click()也不行吗?
水人
水人
我修正了,不过问题还是依旧
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部
返回顶部
顶部