在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ 如何給鼠標JS事件綁定的函數(shù)傳變量參數(shù),tabs[i].onmouseover

如何給鼠標JS事件綁定的函數(shù)傳變量參數(shù),tabs[i].onmouseover = showTab()。

我的無效傳法:tabs[i].onmouseover = showTab(vtabs, vcontents);


var vtabs = document.getElementsByClassName('tab-head')[0].getElementsByTagName('h2'),
    vcontents = document.getElementsByClassName('tab-content')[0].getElementsByTagName('div');

            function changeTab(tabs, contents) {
                for(var i = 0, len = tabs.length; i < len; i++) {
                    tabs[i].onmouseover = showTab(vtabs, vcontents);
                   
                }
            }

            function showTab(tabs, contents) {
                for(var i = 0, len = tabs.length; i < len; i++) {
                    if(tabs[i] === this) {
                        tabs[i].className = 'selected';
                        contents[i].className = 'show';
                    } else {
                        tabs[i].className = '';
                        contents[i].className = '';
                    }
                }
            }

            changeTab(vtabs, vcontents);

htm代碼

<div class="tab-head">
            <h2 class="selected">1</h2>
            <h2>2</h2>
            <h2>3</h2>
        </div>
        <div class="tab-content">
            <div class="show">content1</div>
            <div>content2</div>
            <div>content3</div>
        </div>

css代碼

            h2 {
                border-top: solid cornflowerblue 1px;
                border-left: solid cornflowerblue 1px;
                width: 50px;
                height: 25px;
                margin: 0;
                float: left;
                text-align: center;
            }
            
            .tab-content {
                border: solid cornflowerblue 1px;
                width: 152px;
                height: 100px;
            }
            
            .tab-content div{
                display: none;
            }
            
            .selected {
                background-color: cornflowerblue;
            }
            
            .tab-content .show{
                display: block;
            }

問題描述

問題出現(xiàn)的環(huán)境背景及自己嘗試過哪些方法

相關代碼

// 請把代碼文本粘貼到下方(請勿用圖片代替代碼)

你期待的結果是什么?實際看到的錯誤信息又是什么?

回答
編輯回答
瘋浪

abs[i].onmouseover = showTab(vtabs, vcontents) 這么寫是把showTab的返回值作為事件回調。
abs[i].onmouseover = showTab.bind(abs[i],vtabs, vcontents)

2018年2月27日 11:24
編輯回答
女流氓

xxx.onclick = function(){

    fjslakfja(參數(shù))

}

2017年10月24日 06:09
編輯回答
孤慣

傳參是不可能傳參的~
onmounseover的回調函數(shù)只有一個參數(shù)event。

按照你的想法,可以考慮給每個tab增加一個屬性,然后把content作為值。
例如tabs[i].contents = contents。
然后在onmouseover回調函數(shù)中通過this.contents訪問。
(另外,你的代碼是有問題的,for循環(huán)綁定事件的時候要考慮閉包問題的)

2017年11月20日 13:52
編輯回答
夢若殤
tabs[i].onmouseover = showTab(vtabs, vcontents);

改成:

tabs[i].onmouseover = showTab.bind(null, vtabs, vcontents);
2018年5月16日 12:27