我是一个项目的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)。 link
和hoverToggles
的值是正确的。
我在这里做错了吗? 附带问题:是否有更多的Dojo惯用法呢?
答案 0 :(得分:5)
dojo.query()
返回NodeList。 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');
});
});
});