首页 > javascript dom操作

javascript dom操作

<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; 这样混着用很不好


看到评论我惊悚了....
楼主的写法叫事件委托好么...代码木有问题的哈。
未达到预期效果原因应该是如下:

  1. jquery版本过低 < 1.7

  2. dom还未加载,js先执行

友情提示:手机click事件,通过touch/top等事件处理,或许会更好!!


$(document).ready(function() {
    $(".mskeClaose").on("click", function() {
        $(this).hide();
    });
});
【热门文章】
【热门文章】