搞了半天菜单,原来是效果在闹事

上了一个yui的菜单,奇怪的是显示不出来,然后一个一个地简化,把效果去掉就ok了,真是的。

firebug查看一下,如果加入效果,只是把class加上一个visible,但是没有把visibility设为visible,而且也不出错,查看yahoo logger,没有抛出错误,就是不设了。

估计是有冲突啊。试着把rails里的缺省js去掉几个,只省下prototype.js,不过还是不行,prototype暂时不能去除,就先算了。

生成菜单很容易:
先引用

xml 代码
 
  1. <link rel="stylesheet" type="text/css" href="/yui/fonts/fonts-min.css" />  
  2. <link rel="stylesheet" type="text/css" href="/yui/menu/assets/skins/sam/menu.css" />  
  3. <script type="text/javascript" src="/yui/yahoo-dom-event/yahoo-dom-event.js"></script>  
  4. <script type="text/javascript" src="/yui/container/container_core.js"></script>  
  5. <script type="text/javascript" src="/yui/menu/menu-min.js"></script>  

再放个div,用来放菜单,随便放就行了。
xml 代码
 
  1. <div id="rendertarget"></div>        

js 里生成菜单

js 代码
 
  1. YAHOO.util.Event.onDOMReady(function () {  
  2.   
  3. var oMenu;  
  4.     oMenu = new YAHOO.widget.Menu("basicmenu", {  
  5.           hidedelay: 750, xy:[20,100]  
  6.     });  
  7.   
  8.     var itemDatas=[  
  9.           { text: 'show origin', checked: true,onclick:{fn:set_show_origin} },  
  10.           { text: 'show translate', checked: true,onclick:{fn:set_show_translate} }  
  11.         ];  
  12.     oMenu.addItems(itemDatas);  
  13.     oMenu.showEvent.subscribe(function () {this.focus();});  
  14.       
  15.     oMenu.render("rendertarget"); 
  16. YAHOO.util.Event.addListener("menu_options", "click",oMenu.show, null, oMenu); 
  17. }  

这样就点击menu_options对象,弹出菜单。

你可能感兴趣的:(JavaScript,css,Yahoo,Rails,yui)