В jQuery вы можете использовать .is (': hover'), поэтому
function IsMouseOver(oi)
{
return $(oi).is(':hover');
}
теперь будет самым кратким способом предоставления функции, запрошенной в OP.
Примечание. Вышеописанное не работает в IE8 или ниже
. Как менее лаконичная альтернатива, которая работает в IE8 (если я могу доверять модулю IE8 IE8), и делает это без запуска $(...).hover(...)
повсюду , и не требует знания селектора для элемента (в этом случае ответ Иво проще):
function IsMouseOver(oi)
{
return oi.length &&
oi.parent()
.find(':hover')
.filter(function(s){return oi[0]==this})
.length > 0;
}
Обновление:
См. Другой ответ (2015).
<час>Исходный 2009 Ответ:
Так, Вы хотите onchange
событие стрелять в keydown, размытость, и вставка? Это волшебно.
, Если Вы хотите отследить изменения, как они вводят, используйте "onkeydown"
. Если необходимо захватить операции вставки с мышью, используйте "onpaste"
( IE, FF3) и "oninput"
( FF, Opera, Chrome, <глоток> Safari 1 глоток>).
<глоток> 1 глоток> Поврежденный для <textarea>
на Safari. Используйте textInput
вместо этого
Ниже приведенный код отлично работает для меня с Jquery 1.8.3
HTML: <input type="text" id="myId" />
Javascript / JQuery:
$("#myId").on('change keydown paste input', function(){
doSomething();
});
Вы могли использовать keydown
, keyup
и keypress
события также.
Robert Siemer addEventListener не поддерживается в IE8.
"Более старые версии IE поддерживали эквивалентный, собственный EventTarget.attachEvent () метод". https://developer.mozilla.org/it/docs/Web/API/Element/addEventListener
Метод 1: Добавляют слушателя события для input
:
element.addEventListener("input", myFunction);
Метод 2: Определяют oninput
свойство с JavaScript:
element.oninput = function()
{
myFunction();
};
Метод 3: Определяют oninput
свойство с HTML:
<input type="text" oninput="myFunction();">
У меня было аналогичное требование (текстовое поле в стиле твиттера). Использовали на клавиатуре
и на смене
. onchange
фактически выполняет операции вставки мыши при потере фокуса с поля.
[Обновление] В HTML5 или более поздних версиях используйте oninput
для получения обновлений модификации символов в реальном времени, как описано в других ответы выше.
onkeyup
происходит после ввода, например, я нажимаю t
, когда я поднимаю палец, действие происходит, но на keydown
действие происходит до того, как я наберу символ t
Надеюсь, это кому-то поможет.
Так что onkeyup
лучше, если вы хотите отправить то, что только что набрали.
Если вы используете ТОЛЬКО Internet Explorer, вы можете использовать это:
<input type="text" id="myID" onpropertychange="TextChange(this)" />
<script type="text/javascript">
function TextChange(tBox) {
if(event.propertyName=='value') {
//your code here
}
}
</script>
Надеюсь, это поможет.