求教。用jQuery给按钮添加disabled属性,该按钮变灰后,点击该按钮仍能触发事件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求教。用jQuery给按钮添加disabled属性,该按钮变灰后,点击该按钮仍能触发事件相关的知识,希望对你有一定的参考价值。

按钮禁用后,是不会再次触发事件的。

分析应该是事件冒泡造成的·· 查看下父元素有无click事件!
可以使用 e.stopPropagation(); 来组织事件冒泡·

加油··追问

感谢回答,原因就是因为父元素有click事件了?那么如何阻止。e.stopPropagation()加在何处。是是该按钮的click事件中,还是别的地方?

追答

加在该按钮的click事件中,最后一行····

参考技术A 冒泡咯,你可以在后面加个return false

215 jQuery 属性操作

jQuery 常用属性操作有三种:prop() 、 attr() 、 data() 。


1.1.1 元素固有属性值 prop()

​ 所谓元素固有属性就是元素本身自带的属性,比如 元素里面的 href ,比如 元素里面的 type。
注意:prop() 除了普通属性操作,更适合操作表单属性:disabled / checked / selected 等。

语法

1.1.2 元素自定义属性值 attr()

​ 用户自己给元素添加的属性,我们称为自定义属性。 比如给 div 添加 index =“1”。

语法

​ 注意:attr() 除了普通属性操作,更适合操作自定义属性。(该方法也可以获取 H5 自定义属性)


1.1.3 数据缓存 data()

​ data() 方法可以在指定的元素上存取数据,并不会修改 DOM 元素结构。一旦页面刷新,之前存放的数据都将被移除。

语法

​ 注意:同时,还可以读取 HTML5 自定义属性 data-index ,得到的是数字型。

演示代码

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="jquery.min.js"></script>
</head>

<body>
    <a href="https://www.baidu.cn" title="都挺好">都挺好</a>
    <input type="checkbox" name="" id="" checked>
    <div index="1" data-index="2">我是div</div>
    <span>123</span>
    <script>
        $(function() {
            // 补充:attr()是万能的, 一样可以获取、设置属性值
            console.log($(\'a\').attr(\'href\'));  // https://www.baidu.cn
            $(\'a\').attr(\'title\', \'哈哈\');

            //1. element.prop("属性名") 获取元素固有的属性值
            console.log($("a").prop("href"));
            $("a").prop("title", "我们都挺好");
            $("input").change(function() {
                console.log($(this).prop("checked"));

            });
            // console.log($("div").prop("index"));
            // 2. 元素的自定义属性 我们通过 attr()
            console.log($("div").attr("index"));
            $("div").attr("index", 4);
            console.log($("div").attr("data-index"));
            // 3. 数据缓存 data() 这个里面的数据是存放在元素的内存里面
            $("span").data("uname", "andy");
            console.log($("span").data("uname"));
            // 这个方法获取data-index h5自定义属性 第一个 不用写data-  而且返回的是数字型
            console.log($("div").data("index"));
        })
    </script>
</body>

</html>

以上是关于求教。用jQuery给按钮添加disabled属性,该按钮变灰后,点击该按钮仍能触发事件的主要内容,如果未能解决你的问题,请参考以下文章

处理jquery 中 给disabled属性不传值的问题

jquery设置按钮disabled

如何禁止用户连续点击一个按钮事件详细JS

如何利用jquery来给input添加或删除disabled属性全部方法总结

jquery操作按钮修改对应input属性

js给所有dialog按钮设置disable属性