Я думаю, вам нужно добавить некоторые элементы в ваше if-утверждение.
Используйте что-то вроде If t.OutlineChildren.count = 0 and t.Duration > 480000
Свойство Duration
, по-видимому, считается в минутах рабочего дня, поэтому вам нужно выяснить, какое число вам там подходит.
Не совсем то, что вы просили, но вместо нажатия клавиши это может выполнить то, что вы хотите:
$("#tags1").blur();
или даже
$("#tags1").next().focus();
Попробуйте:
$("#tags1").val("comp").trigger("keypress",[9]);
или
$("#tags1").val("comp").trigger("keypress", [{
preventDefault:function(){},
keyCode:9
}]);
В документах jQuery говорится, что он будет передавать только нормализованные атрибуты событий = свойства объекта jQuery.Event, которые, похоже, не включают специфичные для события данные.
Я пытался и не смог заставить его вставить текст в текстовое поле даже при повторном использовании объекта события, созданного нажатием клавиши браузера, поэтому это не представляется возможным.
Почему можно ' Вы просто меняете значение текстового поля и вызываете blur () для его выхода? (Или сфокусировать () на том, который вы хотите ввести следующим?)
Попробуйте следующее:
$('textarea:input').live('keypress', function(e) {
if (e.keyCode == 9) {
e.preventDefault();
// Press TAB to append a string (keeps the original TEXTAREA text).
$(this).append("TAB TAB TAB AFTER TEXTAREA TEXT");
// Press TAB to append a string (keeps the original TEXTAREA text).
$(this).focus().prepend("TAB TAB TAB BEFORE TEXTAREA TEXT");
// Press TAB to replace a all text inside TEXTAREA.
$(this).val("INSERT INTO TEXTAREA / REPLACE EXISTING TEXT");
}
});
Если вы хотите добавить текст внутри текстовое поле (активным курсором - например, CTRL + V), вы можете использовать "Tabby" (исходный код JS ) (плагин jQuery - 254 строки кода ..!).
Вы также можете найти вдохновение в редакторе YUI , который позволит вам добавлять вкладки внутри редактора.