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

來源:互聯網
上載者:User

標籤:opp   highlight   lis   stop   log   index   text   message   script   

移動端使用的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)" />‘;}

 

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.