2011-05-23 110 views
1

对于Dojo来说基本上很新,我正在尝试为每个类添加一个事件,然后在mouseover上我想用类名来揭示closet div(更改显示为块)。但经过无数次尝试后,我无法这样做。Dojo连接问题

下面是HTML:

<div class="navElement"> 
        <a href="" class="navSectionTitle">Sound &#38; Vision &#43;</a> 
        <div class="subMenuHolder"> 
         <ul> 
          <li><a href="#">Televisions</a>,</li> 
          <li><a href="#">LCD TVs</a>,</li> 
          <li><a href="#">Plasma TVs</a>,</li> 
          <li><a href="#">3D TVs</a>,</li> 
          <li><a href="#">MP3 Players</a>,</li> 
          <li><a href="#">Hi Fi</a>,</li> 
          <li><a href="#">MP3 Docks</a>,</li> 
          <li><a href="">More</a> &#43;</li> 

         </ul> 
        </div> 
       </div> 

       <div class="navElement"> 
        <a href="" class="navSectionTitle">Computers &#38; Software &#43;</a> 
        <div class="subMenuHolder"> 
         <ul> 
          <li><a href="#">Laptops</a>,</li> 
          <li><a href="#">Desktops Computers</a>,</li> 
          <li><a href="#">Software</a>,</li> 
          <li><a href="#">Printers</a>,</li> 
          <li><a href="#">External Hard Drives</a>,</li> 
          <li><a href="#">Internal Hard drives</a>,</li> 
          <li><a href="">More</a> &#43;</li> 

         </ul> 
        </div> 
       </div> 

我试图使用Dojo低于:

dojo.require("dojo.NodeList-traverse");  
dojo.query(".navSectionTitle").forEach(function(node, index, nodelist){ 
      dojo.connect(node , "onmouseover", function(evt){ 
       var here = dojo.query(node).closest(".subMenuHolder"); 
       here.style.display = 'block'; 
       console.log(here); 
      }); 
     }); 

不知道这是最好的做法,但希望得到任何帮助,非常感谢。

回答

2

最近将返回查询中节点的父节点。 那么下一步如下所示。 请务必将dojo.addOnLoad块

dojo.query(".navSectionTitle").forEach(function(node, index, nodelist){  
     dojo.connect(node , "onmouseover", function(evt){    
      //this is the menu you want to show  
      console.log(dojo.query(node).next('.subMenuHolder')[0]) 
     }); 
    }); 

希望它可以帮助

+0

你的先生是一个很优秀的男人的帮助表示感谢工作一种享受里面的所有事件附加代码,真的应该停止11后工作:30 ;-) – jonnyhitek 2011-05-24 08:14:43

+0

即时在印度其中午这里 – rajkamal 2011-05-24 08:40:21

+0

哈哈我不应该停止工作过去11:30再次感谢 – jonnyhitek 2011-05-24 12:08:26

1

您连接到类.navSectionTitle,但

dojo.query('.navSectionTitle') = one 'a' element 

您必须连接到

dojo.query('.subMenuHolder a').connect("onmouseover", function(evt){//your code}); 

如果妳想要li元素连接类型.subMenuHolder李 evt.srcElement - 元素什么叫事件