除了按钮区域点击屏幕任何地方隐藏按钮?

如图:

clipboard.png

除了点击删除按钮,点击屏幕任何地方隐藏这个删除按钮。

自己写了一段代码,不过在安卓有效,在iOS8.1的时候就没效果了,我自己写的代码如下,
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的时候console.log控制台打印结果如下:

clipboard.png

console.log(1)打印不出,也就是说走不进document的点击事件,求解,在此谢过或者说有什么更好的方法。

修改后的js代码:

//展示删除按钮删除评论
    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{"走不进来");
       }

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

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

              del.style.display = "none";
          };
      }
    }
阅读 3.3k
1 个回答

试试用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;
    }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题