鍍金池/ 問(wèn)答/HTML5  網(wǎng)絡(luò)安全  HTML/ 除了按鈕區(qū)域點(diǎn)擊屏幕任何地方隱藏按鈕?

除了按鈕區(qū)域點(diǎn)擊屏幕任何地方隱藏按鈕?

如圖:

clipboard.png

除了點(diǎn)擊刪除按鈕,點(diǎn)擊屏幕任何地方隱藏這個(gè)刪除按鈕。

自己寫了一段代碼,不過(guò)在安卓有效,在iOS8.1的時(shí)候就沒效果了,我自己寫的代碼如下,
html代碼:

<div class="del" style="display:none">刪除</div>

js:

function showDel(item,com_id,fid){
      event.stopPropagation();
      $api.css($api.dom('.del'), 'display:block');
      var del = $api.dom('.del');
      console.log("document--"+JSON.stringify(document));
      document.onclick = function () {
         console.log(1);
         del.style.display = "none";
      };
 }

在ios的時(shí)候console.log控制臺(tái)打印結(jié)果如下:

clipboard.png

console.log(1)打印不出,也就是說(shuō)走不進(jìn)document的點(diǎn)擊事件,求解,在此謝過(guò)或者說(shuō)有什么更好的方法。

修改后的js代碼:

//展示刪除按鈕刪除評(píng)論
    function showDel(item,com_id,fid){
       event.stopPropagation();
       $api.css($api.dom('.del'),'display:block');
       $api.css($api.dom('footer'),'display:none');
       var del = $api.dom('.del');
       del.onclick = function(e){
          e.stopPropagation();
          console.log{"走不進(jìn)來(lái)");
       }

      //兼容iphone6、ios8.1觸摸屏幕
      if ("ontouchstart" in document) {
        document.ontouchstart = function(e){

            del.style.display = "none";
        };
      } else {
          document.onclick = function(e){

              del.style.display = "none";
          };
      }
    }
回答
編輯回答
忘了我

試試用ontouchstart

function showDel(item, com_id, fid) {
    event.stopPropagation();
    $api.css($api.dom('.del'), 'display:block');
    var del = $api.dom('.del');
    console.log("document--" + JSON.stringify(document));

    function click() {
        console.log(1);
        del.style.display = "none";
    };

    if ("ontouchstart" in document) {
        document.ontouchstart = click;
    } else {
        document.onclick = click;
    }
}
2017年4月14日 22:20