2016-05-22 24 views
0

onmouseoverとonmouseoutを使用してドロップダウンメニューを開こうとしています。onmouseoverとonmouseoutエラー関数が定義されていません

<div id="adminDropdown" class="dropdown" dropdown> 
    <a onmouseover="openDropdownMenu('adminDropdown')" 
     onmouseout="closeDropdownMenu('adminDropdown')"> 
     Admin 
    </a> 
    <ul class="dropdown-menu" role="menu"> 
     <li><a>Submenu 1</a></li> 
     <li><a>Submenu 2</a></li> 
    </ul> 
</div> 
<div id="userProfile" class="dropdown" dropdown> 
     <a onmouseover="openDropdownMenu('userProfile')" 
      onmouseout="closeDropdownMenu('userProfile')"> 
      Username 
     </a> 
     <ul class="dropdown-menu" role="menu"> 
      <li><a>Submenu 1</a></li> 
      <li><a>Submenu 2</a></li> 
     </ul> 
    </div> 

私のjavascriptのは、次のコードを持っている:それは私にUncaught ReferenceError: openDropdownMenu is not definedとcloseDropdownMenu機能と同じを与えるリンク上

$rootScope.openDropdownMenu = (id: string) => { 
    var dropdown = document.getElementById(id); 
    dropdown.classList.add('open'); 
}; 

$rootScope.closeDropdownMenu = (id: string) => { 
    var dropdown = document.getElementById(id); 
    dropdown.classList.remove('open'); 
}; 

しかし、毎回のIマウス。

私が試してみました:

$rootScope.dropdown = document.getElementById('adminDropdown'); 
$rootScope.dropdown.addEventListener("mouseover",() => { 
    $rootScope.dropdown.classList.add('open'); 
}); 

$rootScope.dropdown.addEventListener("mouseout",() => { 
    $rootScope.dropdown.classList.remove('open'); 
}); 

をしかし、私は私は1つのドロップダウン以上を持っているように、私は複数回同じ機能を使用できるようにパラメータIDを変更できるようにしたいです。

このエラーで私を啓発することはできますか?ありがとう。

+0

代わりにjQueryを使うことができます... – xdevs23

+0

'$ rootScope'とは何ですか? –

答えて

0

使用ngMouseoverngMouseleave代わり

<a ng-mouseover="openDropdownMenu('adminDropdown')" 
    ng-mouseleave="closeDropdownMenu('adminDropdown')"> 
    ... 
</a> 

角度範囲の内側に評価した場合の機能のみ利用できるようになります。

+0

ありがとう!これは、私がこのばかげた間違いをして頭を打ちたい時のひとつです。 :-) –

関連する問題