最近中文字幕高清中文字幕无,亚洲欧美高清一区二区三区,一本色道无码道dvd在线观看 ,一个人看的www免费高清中文字幕

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定

js監(jiān)聽div標(biāo)簽上面的自定義屬性

標(biāo)簽:
JavaScript

好久没写博客了,可能是近期遇到了瓶颈没有什么东西可以写了,而且最近在换工作也没什么时间。
现在工作换好了,于是更多的可能会慢慢的向原生js方向去。

直接上代码吧

<!DOCTYPE html>
<html>
<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>
    <style>
        #app{
            height: 100px;
            width: 100px;
            background: red
        }
        #root{
            height: 100px;
            width: 100px;
            background: black
        }
        #show{
            height: 100px;
            width: 100px;
            background: yellow
        }
    </style>
</head>
<body>
    <div id="app" show="showFn" hide="hideFn"></div>
    <div id="root"></div>
    <div id="show"></div>
    <script>
        // 这是调用的
        function hideFn() {
            console.log('消失了');
        }
        function showFn() {
            console.log('显示了');
        }
        document.getElementById('app').addEventListener('hide', function() {console.log('又监听到了')}, false);
    </script>
    <script>
        //这是封装的
        // eval('fn')获取到函数名的字符串然后转成函数
        //hide和show对应div上的属性名
        document.getElementById('root').addEventListener('click',function() {//消失
            var arr = document.getElementById('app').attributes
            Object.keys(arr).forEach((key,index) => {//拿到属性和对应的值
                if (arr[key].name == 'hide') {
                    var hide = new Event('hide');//dispatchEvent需要传入一个type为event的参数
                    document.getElementById('app').style.display = "none"
                    document.getElementById('app').addEventListener('hide', eval(arr[key].nodeValue), false);//监听hide事件
                    document.getElementById('app').dispatchEvent(hide);//派发hide事件
                }
            });
        })
        document.getElementById('show').addEventListener('click',function() {//显示
            var arr = document.getElementById('app').attributes
            Object.keys(arr).forEach((key,index) => {
                if (arr[key].name == 'show') {
                    var show = new Event('show');
                    document.getElementById('app').style.display = "block"
                    document.getElementById('app').addEventListener('show', eval(arr[key].nodeValue), false);
                    document.getElementById('app').dispatchEvent(show);
                }
            });
        })
    </script>
</body>
</html>


主要的api是addEventListener监听事件dispatchEvent派发事件
通过这种方式来实现监听和执行div属性上绑定的事件

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評論
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊有機(jī)會得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報

0/150
提交
取消