javascript - $(this).find(..) 替代方案

标签 javascript jquery html

我发现自己在这样做,但不确定这是否是最好的方法。这里有一个例子。

<ul id="menubar">
  <li><a class="menu_item">File</a>
    <ul>
      <li><a id="menu_file_new">New</a></li>
      <li><a id="menu_file_open">Open</a></li>
    </ul>
  </li>
  <li><a class="menu_item">Run</a>
    <ul>
      <li><a id="menu_run_preview">Preview</a></li>
      <li><a id="menu_run_compile">Compile</a></li>
    </ul>
  </li>
</ul>

JQuery

$('.menu_item').hover(function(){
    $(this).find('ul').show();
});

只是想知道这是不是最好的方法,find 似乎有点矫枉过正?


编辑:因此我无法使用 css:在 Opera/IE 中单击/悬停项目时失败,在这两个浏览器中失败。 http://jsfiddle.net/cJsn2/1/这是因为 html 标准。

最佳答案

你只能用 CSS 来做到这一点

.menu_item ul { display: none; }
.menu_item:hover ul {display: block; }

至于JavaScript,没问题,可以用$.children代替$.find遍历更少的节点

关于javascript - $(this).find(..) 替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14217612/

相关文章:

javascript - 如何在调用 this._super 之前捕获 Promise? JavaScript

javascript - 我在设置 cookie 时遇到问题

javascript - 移动网页中的按钮

javascript - 确保 HTML 5 视频始终在其他所有内容之上播放

html - 悬停时出现边框

javascript - 根据第一维中的一些项目排列二维数组

javascript - 使用其他对象的属性创建对象

javascript - 在 jQuery 中使用 $() 快捷方式是不好的做法吗?

javascript - 在 div 内拖动而不是滚动

javascript - 删除本地存储