mirror of
https://github.com/jquery/jquery-ui.git
synced 2024-11-21 11:04:24 +00:00
Add support for multiple events, along with hoverintent demo. Fixes #3614 - Accordion: support multiple events being set at the same time
This commit is contained in:
parent
66659a1240
commit
a3ab2b223b
133
demos/accordion/hoverintent.html
Normal file
133
demos/accordion/hoverintent.html
Normal file
@ -0,0 +1,133 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<title>jQuery UI Accordion - Default functionality</title>
|
||||||
|
<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
|
||||||
|
<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
|
||||||
|
<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
|
||||||
|
<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
|
||||||
|
<script type="text/javascript" src="../../ui/jquery.ui.accordion.js"></script>
|
||||||
|
<link type="text/css" href="../demos.css" rel="stylesheet" />
|
||||||
|
<script type="text/javascript">
|
||||||
|
|
||||||
|
var cfg = ($.hoverintent = {
|
||||||
|
sensitivity: 7,
|
||||||
|
interval: 100
|
||||||
|
});
|
||||||
|
|
||||||
|
$.event.special.hoverintent = {
|
||||||
|
setup: function() {
|
||||||
|
$(this).bind("mouseover", jQuery.event.special.hoverintent.handler);
|
||||||
|
},
|
||||||
|
teardown: function() {
|
||||||
|
$(this).unbind("mouseover", jQuery.event.special.hoverintent.handler);
|
||||||
|
},
|
||||||
|
handler: function(event) {
|
||||||
|
event.type = "hoverintent";
|
||||||
|
var self = this,
|
||||||
|
args = arguments,
|
||||||
|
target = $(event.target),
|
||||||
|
cX, cY, pX, pY;
|
||||||
|
|
||||||
|
function track(event) {
|
||||||
|
cX = event.pageX;
|
||||||
|
cY = event.pageY;
|
||||||
|
};
|
||||||
|
pX = event.pageX;
|
||||||
|
pY = event.pageY;
|
||||||
|
function clear() {
|
||||||
|
target.unbind("mousemove", track).unbind("mouseout", arguments.callee);
|
||||||
|
clearTimeout(timeout);
|
||||||
|
}
|
||||||
|
function handler() {
|
||||||
|
if ( ( Math.abs(pX-cX) + Math.abs(pY-cY) ) < cfg.sensitivity ) {
|
||||||
|
clear();
|
||||||
|
jQuery.event.handle.apply(self, args);
|
||||||
|
} else {
|
||||||
|
pX = cX; pY = cY;
|
||||||
|
timeout = setTimeout(handler, cfg.interval);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var timeout = setTimeout(handler, cfg.interval);
|
||||||
|
target.mousemove(track).mouseout(clear);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
$(function() {
|
||||||
|
$("#accordion").accordion({
|
||||||
|
event: "click hoverintent"
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<div class="demo">
|
||||||
|
|
||||||
|
<div id="accordion">
|
||||||
|
<h3><a href="#">Section 1</a></h3>
|
||||||
|
<div>
|
||||||
|
<p>
|
||||||
|
Mauris mauris ante, blandit et, ultrices a, suscipit eget, quam. Integer
|
||||||
|
ut neque. Vivamus nisi metus, molestie vel, gravida in, condimentum sit
|
||||||
|
amet, nunc. Nam a nibh. Donec suscipit eros. Nam mi. Proin viverra leo ut
|
||||||
|
odio. Curabitur malesuada. Vestibulum a velit eu ante scelerisque vulputate.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<h3><a href="#">Section 2</a></h3>
|
||||||
|
<div>
|
||||||
|
<p>
|
||||||
|
Sed non urna. Donec et ante. Phasellus eu ligula. Vestibulum sit amet
|
||||||
|
purus. Vivamus hendrerit, dolor at aliquet laoreet, mauris turpis porttitor
|
||||||
|
velit, faucibus interdum tellus libero ac justo. Vivamus non quam. In
|
||||||
|
suscipit faucibus urna.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<h3><a href="#">Section 3</a></h3>
|
||||||
|
<div>
|
||||||
|
<p>
|
||||||
|
Nam enim risus, molestie et, porta ac, aliquam ac, risus. Quisque lobortis.
|
||||||
|
Phasellus pellentesque purus in massa. Aenean in pede. Phasellus ac libero
|
||||||
|
ac tellus pellentesque semper. Sed ac felis. Sed commodo, magna quis
|
||||||
|
lacinia ornare, quam ante aliquam nisi, eu iaculis leo purus venenatis dui.
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li>List item one</li>
|
||||||
|
<li>List item two</li>
|
||||||
|
<li>List item three</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<h3><a href="#">Section 4</a></h3>
|
||||||
|
<div>
|
||||||
|
<p>
|
||||||
|
Cras dictum. Pellentesque habitant morbi tristique senectus et netus
|
||||||
|
et malesuada fames ac turpis egestas. Vestibulum ante ipsum primis in
|
||||||
|
faucibus orci luctus et ultrices posuere cubilia Curae; Aenean lacinia
|
||||||
|
mauris vel est.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Suspendisse eu nisl. Nullam ut libero. Integer dignissim consequat lectus.
|
||||||
|
Class aptent taciti sociosqu ad litora torquent per conubia nostra, per
|
||||||
|
inceptos himenaeos.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div><!-- End demo -->
|
||||||
|
|
||||||
|
<div class="demo-description">
|
||||||
|
<p>
|
||||||
|
Click headers to expand/collapse content that is broken into logical sections, much like tabs.
|
||||||
|
Optionally, toggle sections open/closed on mouseover.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
The underlying HTML markup is a series of headers (H3 tags) and content divs so the content is
|
||||||
|
usable without JavaScript.
|
||||||
|
</p>
|
||||||
|
</div><!-- End demo-description -->
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -14,6 +14,7 @@
|
|||||||
<li><a href="no-auto-height.html">No auto height</a></li>
|
<li><a href="no-auto-height.html">No auto height</a></li>
|
||||||
<li><a href="collapsible.html">Collapse content</a></li>
|
<li><a href="collapsible.html">Collapse content</a></li>
|
||||||
<li><a href="mouseover.html">Open on mouseover</a></li>
|
<li><a href="mouseover.html">Open on mouseover</a></li>
|
||||||
|
<li><a href="hoverintent.html">Open on hoverintent</a></li>
|
||||||
<li><a href="custom-icons.html">Customize icons</a></li>
|
<li><a href="custom-icons.html">Customize icons</a></li>
|
||||||
<li><a href="sortable.html">Sortable</a></li>
|
<li><a href="sortable.html">Sortable</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
2
ui/jquery.ui.accordion.js
vendored
2
ui/jquery.ui.accordion.js
vendored
@ -117,7 +117,7 @@ $.widget("ui.accordion", {
|
|||||||
this.headers.find('a').attr('tabIndex','-1');
|
this.headers.find('a').attr('tabIndex','-1');
|
||||||
|
|
||||||
if (o.event) {
|
if (o.event) {
|
||||||
this.headers.bind((o.event) + ".accordion", function(event) {
|
this.headers.bind(o.event.split(" ").join(".accordion ") + ".accordion", function(event) {
|
||||||
self._clickHandler.call(self, event, this);
|
self._clickHandler.call(self, event, this);
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
});
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user