如何添加悬停事件侦听器以触发事件侦听器

时间:2015-11-18 23:55:29

标签: javascript jquery

我正在尝试向下面的代码添加一个悬停事件监听器,这样当我将鼠标悬停在链接标记上时,它会触发扩展子菜单的操作。我试过悬停和鼠标悬停,但都没有奏效。点击似乎工作正常,我不知道我做错了什么。

Array.prototype.slice.call( this.menuItems ).forEach( function( el, i ) {
    var trigger = el.querySelector( 'a' );
    if( self.touch ) {
    ``trigger``.addEventListener( 'touchstart', function( ev ) { 
        self._openMenu( this, ev ); } );
    }
    else {
        trigger.addEventListener( 'click', function( ev ) { self._openMenu( this, ev ); });
    }
});

window.addEventListener('resize', function( ev ) { 
    self._resizeHandler(); 
});

2 个答案:

答案 0 :(得分:1)

不要这样惩罚自己。使用像jQuery这样的库将事件处理程序附加到元素。 jQuery支持鼠标悬停和悬停。不要重新发明轮子,并在现有的解决方案(如bootstrap)的基础上实现扩展子菜单等基本功能。

答案 1 :(得分:1)

trigger.addEventListener('click', function(ev) {
   self._openMenu(this, ev);
});

                    Write

trigger.addEventListener('mouseover', function(ev) {
   self._openMenu(this, ev);
});

通过 鼠标悬停事件

替换 点击事件