Fix cancel-bubble
parent
50ccb83a58
commit
ea6f19fac9
23
hinter.js
23
hinter.js
|
@ -95,9 +95,9 @@ SimpleAutocomplete.prototype.init = function()
|
||||||
document.body.appendChild(t);
|
document.body.appendChild(t);
|
||||||
|
|
||||||
// Remember instance
|
// Remember instance
|
||||||
e.SimpleAutocomplete_input = self;
|
e.SimpleAutocomplete_input = this;
|
||||||
t.SimpleAutocomplete_layer = self;
|
t.SimpleAutocomplete_layer = this;
|
||||||
SimpleAutocomplete.SimpleAutocompletes.push(self);
|
SimpleAutocomplete.SimpleAutocompletes.push(this);
|
||||||
|
|
||||||
// Set event listeners
|
// Set event listeners
|
||||||
var self = this;
|
var self = this;
|
||||||
|
@ -113,6 +113,7 @@ SimpleAutocomplete.prototype.init = function()
|
||||||
this.addRmListener('change', function() { return self.onChange(); });
|
this.addRmListener('change', function() { return self.onChange(); });
|
||||||
this.addRmListener('focus', function() { return self.onInputFocus(); });
|
this.addRmListener('focus', function() { return self.onInputFocus(); });
|
||||||
this.addRmListener('blur', function() { return self.onInputBlur(); });
|
this.addRmListener('blur', function() { return self.onInputBlur(); });
|
||||||
|
addListener(t, 'mousedown', function(ev) { return self.cancelBubbleOnHint(ev); });
|
||||||
this.onChange();
|
this.onChange();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -295,7 +296,7 @@ SimpleAutocomplete.prototype.selectItem = function(index)
|
||||||
}
|
}
|
||||||
this.curValue = this.input.value;
|
this.curValue = this.input.value;
|
||||||
if (this.onChangeListener)
|
if (this.onChangeListener)
|
||||||
this.onChangeListener(self, index);
|
this.onChangeListener(this, index);
|
||||||
};
|
};
|
||||||
|
|
||||||
// Hide hinter
|
// Hide hinter
|
||||||
|
@ -348,6 +349,15 @@ SimpleAutocomplete.prototype.preventCheck = function(ev)
|
||||||
return stopEvent(ev, false, true);
|
return stopEvent(ev, false, true);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Cancel event propagation
|
||||||
|
SimpleAutocomplete.prototype.cancelBubbleOnHint = function(ev)
|
||||||
|
{
|
||||||
|
ev = ev||window.event;
|
||||||
|
if (this.hasFocus)
|
||||||
|
this.skipHideCounter++;
|
||||||
|
return stopEvent(ev, true, false);
|
||||||
|
};
|
||||||
|
|
||||||
// Handle item mouse over
|
// Handle item mouse over
|
||||||
SimpleAutocomplete.prototype.onItemMouseOver = function(elm)
|
SimpleAutocomplete.prototype.onItemMouseOver = function(elm)
|
||||||
{
|
{
|
||||||
|
@ -357,7 +367,6 @@ SimpleAutocomplete.prototype.onItemMouseOver = function(elm)
|
||||||
// Handle item clicks
|
// Handle item clicks
|
||||||
SimpleAutocomplete.prototype.onItemClick = function(ev, elm)
|
SimpleAutocomplete.prototype.onItemClick = function(ev, elm)
|
||||||
{
|
{
|
||||||
stopEvent(ev||window.event, true, false);
|
|
||||||
this.selectItem(parseInt(elm.id.substr(this.id.length+6)));
|
this.selectItem(parseInt(elm.id.substr(this.id.length+6)));
|
||||||
return true;
|
return true;
|
||||||
};
|
};
|
||||||
|
@ -479,11 +488,7 @@ SimpleAutocomplete.GlobalMouseDown = function(ev)
|
||||||
if (esh)
|
if (esh)
|
||||||
break;
|
break;
|
||||||
else if (target.SimpleAutocomplete_layer)
|
else if (target.SimpleAutocomplete_layer)
|
||||||
{
|
|
||||||
if (target.SimpleAutocomplete_layer.hasFocus)
|
|
||||||
target.SimpleAutocomplete_layer.skipHideCounter++;
|
|
||||||
return true;
|
return true;
|
||||||
}
|
|
||||||
target = target.parentNode;
|
target = target.parentNode;
|
||||||
}
|
}
|
||||||
for (var i in SimpleAutocomplete.SimpleAutocompletes)
|
for (var i in SimpleAutocomplete.SimpleAutocompletes)
|
||||||
|
|
Loading…
Reference in New Issue