Ignore mousing over border of select
This commit is contained in:
parent
32ff363ee3
commit
9e2592f35f
|
@ -34,7 +34,7 @@ function page_header($title, $error = "", $breadcrumb = array(), $title2 = "") {
|
||||||
document.body.className = document.body.className.replace(/ nojs/, ' js');
|
document.body.className = document.body.className.replace(/ nojs/, ' js');
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div id="help" class="jush-<?php echo $jush; ?> jsonly hidden" onmouseover="helpOpen = 1;" onmouseout="helpMouseout();"></div>
|
<div id="help" class="jush-<?php echo $jush; ?> jsonly hidden" onmouseover="helpOpen = 1;" onmouseout="helpMouseout(this, event);"></div>
|
||||||
|
|
||||||
<div id="content">
|
<div id="content">
|
||||||
<?php
|
<?php
|
||||||
|
|
|
@ -474,5 +474,5 @@ function doc_link($path) {
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
function on_help($command, $side = 0) {
|
function on_help($command, $side = 0) {
|
||||||
return " onmouseover='helpMouseover(getTarget(event), " . h($command) . ", $side);' onmouseout='helpMouseout();'";
|
return " onmouseover='helpMouseover(this, event, " . h($command) . ", $side);' onmouseout='helpMouseout(this, event);'";
|
||||||
}
|
}
|
||||||
|
|
|
@ -614,36 +614,41 @@ function schemaMouseup(ev, db) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var helpOpen;
|
var helpOpen, helpIgnore; // when mouse outs <option> then it mouse overs border of <select> - ignore it
|
||||||
|
|
||||||
/** Display help
|
/** Display help
|
||||||
* @param HTMLElement
|
* @param HTMLElement
|
||||||
|
* @param MouseEvent
|
||||||
* @param string
|
* @param string
|
||||||
* @param bool display on left side (otherwise on top)
|
* @param bool display on left side (otherwise on top)
|
||||||
*/
|
*/
|
||||||
function helpMouseover(el, text, side) {
|
function helpMouseover(el, event, text, side) {
|
||||||
|
var target = getTarget(event);
|
||||||
if (!text) {
|
if (!text) {
|
||||||
helpClose();
|
helpClose();
|
||||||
} else if (window.jush) {
|
} else if (window.jush && (!helpIgnore || el != target)) {
|
||||||
helpOpen = 1;
|
helpOpen = 1;
|
||||||
var help = document.getElementById('help');
|
var help = document.getElementById('help');
|
||||||
help.innerHTML = text;
|
help.innerHTML = text;
|
||||||
jush.highlight_tag([ help ]);
|
jush.highlight_tag([ help ]);
|
||||||
alterClass(help, 'hidden');
|
alterClass(help, 'hidden');
|
||||||
var top = 0, left = 0, parent = el;
|
var top = 0, left = 0, parent = target;
|
||||||
do {
|
do {
|
||||||
top += parent.offsetTop;
|
top += parent.offsetTop;
|
||||||
left += parent.offsetLeft;
|
left += parent.offsetLeft;
|
||||||
} while (parent = parent.offsetParent);
|
} while (parent = parent.offsetParent);
|
||||||
help.style.top = (top - (side ? (help.offsetHeight - el.offsetHeight) / 2 : help.offsetHeight)) + 'px';
|
help.style.top = (top - (side ? (help.offsetHeight - target.offsetHeight) / 2 : help.offsetHeight)) + 'px';
|
||||||
help.style.left = (left - (side ? help.offsetWidth : (help.offsetWidth - el.offsetWidth) / 2)) + 'px';
|
help.style.left = (left - (side ? help.offsetWidth : (help.offsetWidth - target.offsetWidth) / 2)) + 'px';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Close help after timeout
|
/** Close help after timeout
|
||||||
|
* @param HTMLElement
|
||||||
|
* @param MouseEvent
|
||||||
*/
|
*/
|
||||||
function helpMouseout() {
|
function helpMouseout(el, event) {
|
||||||
helpOpen = 0;
|
helpOpen = 0;
|
||||||
|
helpIgnore = (el != getTarget(event));
|
||||||
setTimeout(function () {
|
setTimeout(function () {
|
||||||
if (!helpOpen) {
|
if (!helpOpen) {
|
||||||
helpClose();
|
helpClose();
|
||||||
|
|
Loading…
Reference in a new issue