大佬教程收集整理的这篇文章主要介绍了jQuery .fadeOut回调.click不工作,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
问题是.fadeOut回调到.click()触发器没有触发.我在下面链接的小提琴中重新创建了一个简化版本.第一次单击启动fadeOut,当fadeOut完成时,不会发生.click触发器.单击第二次然后触发触发器.有什么想法吗?
HTML:
<div><input type="file" name="image_file" id="image_file"/></div> <div class="overlay_wrap"> Overlast </div> <a id="click" href="">Click</a>
jQuery的:
$(document).ready(function() { $("#click").click(function(event) { event.preventDefault(); $('.overlay_wrap').fadeOut(1000,function(event){ $('#image_file').trigger('click'); }); }); });
感谢您的帮助!
编辑:有旧的小提琴链接,改变了.
问题的核心是:< input type =“file”/>无法以编程方式打开(Loads of questions on SO /关于它的东西).它不仅仅是Chrome; Firefox正在显示弹出窗口被阻止的消息,Safari也会阻止它,而在IE中,表单将不会提交.
这背后的原因是因为它存在潜在的安全风险.打开此< input type =“file”/>内部只能产生用户操作.由于.fadeOut(),浏览器不再将其识别为用户事件.现在我们回到浏览器的计时/线程,因为这确实有效.没有任何委托,也没有某种线程/超时阻止对话框打开.
$("#click").click(function(event) { event.preventDefault(); $('#image_file').trigger('click'); });
为了表明它实际上是< input type =“file”/> ;,这里是< input type =“button”/>的示例.确实有效:
HTML
<input type="button" name="image_file" id="image_file" value="type='button'" />
JS
$("#click").click(function(event) { event.preventDefault(); $('.overlay_wrap').fadeOut(1000,function(){ $('#image_file').trigger('click'); }); }); $('#image_file').click(function() { alert('ok'); });
长话短说:你不能用淡化效果做到这一点.你可以简单地打开对话框并隐藏元素,但这就是它的全部内容.
$("#click").click(function(event) { event.preventDefault(); $('.overlay_wrap').hide(); $('#image_file').trigger('click'); });
以上是大佬教程为你收集整理的jQuery .fadeOut回调.click不工作全部内容,希望文章能够帮你解决jQuery .fadeOut回调.click不工作所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。