前军教程网

中小站长与DIV+CSS网页布局开发技术人员的首选CSS学习平台

js vue jq消除某个元素的click点击事件

js vue jq消除某个元素的click点击事件

原生js:

//页面
<div style="margin-top:20px;">
    <button onclick="clickMethod()" id="btn">点我</button>
    <button onclick="clearMethod()" >清除方法</button>
    <button onclick="clearMethod2()" id="btn2">jq清除方法</button>
</div>
  • 可以直接赋值为空,但是清除后,再次点击,控制台会报错
  • 直接修改方法,虽然没有报错,但是也没有清除,当然也要以return false
  • 直接删除onclick,这个最完美
//原生js清除单击事件
    function clickMethod(){
        alert('我被点击了')
    }
    function clearMethod(){
        // clickMethod=""  //会报错
        // clickMethod=function(){
        //     console.log("我被修改了")
        // }
        console.log(document.getElementById('btn'))
        document.getElementById('btn').onclick=""  //不会报错

    }

jquery:直接了当

 //jq清除单击事件
    function clearMethod2(){
        $('#btn').removeAttr('onclick')
    }

vue

vue没有提供删除事件的方法,但是可以通过赋值的方式:

还有一种方式,通过增加一个变量的方式来完成不让元素的事件触发

//html
<div id="app">
    <button @click="flag && clickMe()" ref="me">点我</button>
    <button @click="recovery()">恢复方法</button>
    <button @click='clearMe()'>清除方法</button>
    <button @click='clearMe2()'>清除方法2</button>
    <!--<button @click='clearMe3()'>清除方法3</button>-->
</div>
//js
  let vm = new Vue({
        el: '#app',
        data: {
            flag: true
        },
        methods: {
            clickMe() {
                alert('我被点击了')
            },
            recovery() {
                this.flag=true

                this.clickMe = function () {
                    alert('我被点击了')
                }
            },
            clearMe() {  //使用标记变量来控制方法是否生效
                this.flag = false
            },
            clearMe2() {
                // this.clickMe = function () {  //可以直接修改
                //     console.log('我被修改了');
                // }
                this.clickMe = function () {  //return false 也可以间接清除方法
                    return false;
                }
                // this.clickMe = false //使用该方式会报错
                // this.clickMe = "" //使用该方式会报错
                console.log('清除方法')
            },
            clearMe3(){  //无法实现清除
                let me = this.$refs.me
                console.log(me)  //在控制台找不到单击事件
            }
        }
    })

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言