Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么不';这些Dojo悬停事件不起作用吗?_Javascript_Dojo_Dom Events - Fatal编程技术网

Javascript 为什么不';这些Dojo悬停事件不起作用吗?

Javascript 为什么不';这些Dojo悬停事件不起作用吗?,javascript,dojo,dom-events,Javascript,Dojo,Dom Events,我是Dojo的新手(对jQuery很有经验),我正在添加/删除一些类,这些类将改变主导航链接和下拉列表的样式 以下是我编写的代码: dojo.addOnLoad(function() { dojo.query('#primary-nav > ul > li > div').forEach(function(container) { var hoverToggles = dojo.query('> a, > ul', container),

我是Dojo的新手(对jQuery很有经验),我正在添加/删除一些类,这些类将改变主导航链接和下拉列表的样式

以下是我编写的代码:

dojo.addOnLoad(function() {
    dojo.query('#primary-nav > ul > li > div').forEach(function(container) {
        var hoverToggles = dojo.query('> a, > ul', container),
            link = dojo.query('> a', container);

        dojo.connect(link, 'onmouseover', function() {
            dojo.addClass(hoverToggles, 'hover');
        });

        dojo.connect(link, 'onmouseout', function() {           
            dojo.removeClass(hoverToggles, 'hover');
        });
    });
});
没有运行放入事件处理程序的代码(console.log,alert)。
链接
悬停切换
的值正确

我做错什么了吗? 附带问题:有没有一种更符合Dojo习惯的方法来执行此操作?

Dojo.query()
返回节点列表
dojo.addClass()
其余部分使用DOM节点

试试这样:

dojo.addOnLoad(function() {
  dojo.query('#primary-nav > ul > li > div').forEach(function(container) {
    var hoverToggles = dojo.query('> a, > ul', container),
        link = dojo.query('> a', container);

    link.onmouseover(function() {
      hoverToggles.addClass('hover');
    });

    link.onmouseout(function() {            
      hoverToggles.removeClass('hover');
    });
  });
});
dojo.query()
返回节点列表
dojo.addClass()
其余部分使用DOM节点

试试这样:

dojo.addOnLoad(function() {
  dojo.query('#primary-nav > ul > li > div').forEach(function(container) {
    var hoverToggles = dojo.query('> a, > ul', container),
        link = dojo.query('> a', container);

    link.onmouseover(function() {
      hoverToggles.addClass('hover');
    });

    link.onmouseout(function() {            
      hoverToggles.removeClass('hover');
    });
  });
});