<div class="mskeLayBg">
<div class="mskelayBox">
<div class="mskeClaose"></div>
</div>
</div>
$(document.body).on("click",".mskeClaose",function(){
$(".mskeLayBg").hide();
});
我这样操作dom有什么问题吗?为什么在手机端他hide不掉的???
LZ是写的事件委托。
正常的click
事件后面添加一个callback
就OK了。你的写法第二个参数是目标元素
测试了下,你把
$(document.body)
改成
$('.mskeLayBg')
原因不清楚,你把事件绑定到body,window,html,document都不行
还有既然用了jq,选择body用
$('body')
话说你是iOS吗?经过测试,安卓可以在body上绑定事件,但是iOS不行,估计上iOS的bug,不过一般没有这样搞的,绑定到上一级就行了,没必要绑定到body或者window上面
@看不懂未来 说的好,我第一眼看到楼主的代码感觉应该没啥问题才对,$(document.body)跟$('body')没啥太大的差别。然后自己亲自测试了一下,不管PC还是手机都可以隐藏,没什么问题,当然我不是用的真机,我用的chrome的自带的调试,不知道为什么楼主的有问题。PS:有个小猜测,楼主应该没忘记加载JQUERY库吧
$(document.body).on("click touched",".mskeClaose",function(){
$(".mskeLayBg").hide();
});
你们这些说有问题的,都不写个例子自己测试一下,也是醉了!
这样写是没有问题的。
如果点击没办法隐藏,一定是因为别的什么原因,毕竟代码只有片段,再仔细看看吧。
用了jQuery,为什么还要用dom document.body; 这样混着用很不好
看到评论我惊悚了....
楼主的写法叫事件委托好么...代码木有问题的哈。
未达到预期效果原因应该是如下:
jquery版本过低 < 1.7
dom还未加载,js先执行
友情提示:手机click事件,通过touch/top等事件处理,或许会更好!!
$(document).ready(function() {
$(".mskeClaose").on("click", function() {
$(this).hide();
});
});