关于layer的坑

  真是自己给自己挖坑,坑死人不偿命啊。

  在用layui开发时,遇到这种情况,点击按钮出现一个弹出层,然而我不是用button按钮去实现的,而是用a标签做的,本来a标签也是可以实现的,在这里我无形中给自己挖了个坑。然后绕进去好半天不知道问题出在哪,直接上代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <link rel="stylesheet" href="../dist/css/layui.css">
</head>
<body>
    <a href="" class="layui-btn" id="btn">弹出层</a>
    <script src="../dist/layui.js"></script>
    <script src="../dist/jquery.min.js"></script>
    <script>
        layui.use('layer',function(){
            var layer = layui.layer;
            $("#btn").click(function(){
                layer.confirm('确定要删除吗?',{icon: 3, title:'提示'},function(index){
                    layer.close(index)
                })
            })
        })
    </script>
</body>
</html>

  这样看似没问题,实则无法实现预期的弹出层效果,因为a是一个超链接,点击后会默认有跳转行为,因而弹出层事件只能短暂触发,而后迅速消失。

  其实要解决这个问题,有几种办法,其一,直接删除href属性即可解决。其二、给href属性赋值,使其等于javascript:void(0); 这样就可以阻止超链接的跳转行为,也可以解决问题。其三,就是不使用a标签,而改用button按钮,就可以避免这个问题

原文地址:https://www.cnblogs.com/jf-67/p/8025099.html