【发布时间】:2011-01-15 02:09:48
【问题描述】:
我正在使用手风琴进行导航,我需要每个元素在鼠标悬停时变为活动状态,但在鼠标悬停时,初始活动元素应该展开,而不是最后一个悬停的元素。
这就是我正在尝试的:
<div id="accordion">
<h3 id="item-1">Item 1</h3>
<div id="item-1-content">Item 1 content</div>
<h3 id="item-2">Item 2</h3>
<div id="item-2-content">Item 2 content</div>
<h3 id="item-3">Item 3</h3>
<div id="item-3-content">Item 3 content</div>
</div>
还有js:
$("#accordion").accordion({
event: "mouseover",
active: "#item-1",
collapsible: false
}).mouseout(function() {
$(this).accordion('option', 'active', '#item-1');
});
在页面加载时,#item-1-content 会按应有的方式展开。如果我将鼠标移到#item-2 上,#item-2-content 会展开而 #item-1-content 会缩小,就像它们应该的那样。当我将鼠标移到手风琴外时,#item-1-content 应该再次成为展开的元素,但这不会发生。
如果我省略“mouseout”回调,最后一个悬停的元素保持活动状态。如果我以这种方式离开它,即使由于事件冒泡而实际上没有“离开”手风琴,也会触发“mouseout”,从而导致奇怪的行为。
我应该防止手风琴元素冒泡还是有办法通过手风琴选项的组合来实现此功能?
【问题讨论】:
标签: jquery jquery-ui accordion