移動端阻止事件冒泡需要注意!


移動端使用的js插件式zepto和touch,想要在一個大的區域做一個點擊事件,但是里面小的區域也有自己的點擊事件,就要阻止事件冒泡,但是使用了之后發現不好使,原因是:大的區域使用的事件是移動端的tap事件,小的區域是js動態生成的元素,使用的是onclick加載的函數,所以,阻止冒泡事件失敗了,最后,把大的點擊區域也換成了click進行處理,就好使了!zepto也是支持jquery的click事件的。

 

 

//大的點擊區域,點擊要跳轉到另一個頁面

//點擊某一篇文章,進入正文頁面
$('.articleCont').on('click',function () {
  window.location.href = 'hcArticle.html?userId='+userId+'&tieziId='+DES3.encrypt(key,$(this).data('postnoteid'))+'&userName='+userName;
});

 

//小的點擊區域的方法,阻止了事件的冒泡,使之有自己的自己的點擊事件。

//調用android打電話方法
function androidPhone(_this,e){
    if(DES3.decrypt(key,userId)=='0'||DES3.decrypt(key,userId)==0){  //未登錄點贊
        //alert('未登錄')
        if(u.indexOf('Android') > -1) {  //跳轉android登錄頁面
            window.Android.native_method_select_login();
        } else if(u.indexOf('iPhone') > -1) {
            window.webkit.messageHandlers.native_method_select_login.postMessage({body: 'sender message'});
        }
    } else {
        if(u.indexOf('Android')>-1){  //android的打電話彈框是android寫的
            window.Android.native_method_select_call_phone($(_this).data('name'), $(_this).data('tel').toString());
        } else if(u.indexOf('iPhone')>-1){
            $('.callDialog').css({'display':'block','opacity':'1'});
            console.log($('.callDialog').height());
            $('.callDialog .name').text($(_this).data('name'));
            $('.callDialog .call').attr('href','tel:'+$(_this).data('tel'));
            $('.grayMask').show();  //遮罩層
            $('.callDialog').css({
                'top': ($(window).height() - $('.callDialog').height()) / 2 + $(window).scrollTop() + 'px',
                'left': ($(window).width()-$('.callDialog').width())/2+'px'
            });
        }
    }
    e.stopPropagation();
}


//小的點擊區域,調用上面定義的阻止事件冒泡的方法!

if(list[i].isPhone==0){ //是否開啟電話,0:開啟;1:關閉
    hcListStr+='<img src="../pic/hcPhone2.png" data-tel="'+list[i].phone+'" onclick="androidPhone(this,event)" />';
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM