【问题标题】:Why aren't these Dojo hover events working?为什么这些 Dojo 悬停事件不起作用?
【发布时间】:2009-12-22 20:04:55
【问题描述】:

我是一个项目的 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、警报)。 linkhoverToggles 的值是正确的。

我在这里做错了吗? 附带问题:有没有更符合 Dojo 习惯的方法?

【问题讨论】:

    标签: javascript dojo dom-events


    【解决方案1】:

    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');
        });
      });
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-04-03
      • 2013-04-06
      • 2016-05-01
      • 2018-07-26
      • 1970-01-01
      • 1970-01-01
      • 2018-06-28
      相关资源
      最近更新 更多