Ваша лучшая ставка здесь - динамически связывать эти события onfocus
и onblur
вместо их жесткого кодирования в HTML. Примерно так:
$(document).ready(function() {
// bind the events
$('#Txt1, #Txt2, #Txt3').focus(function() {
$(this).css('border-color', '#000000');
$(this).css('background-color', '#90EE90');
}).blur(function() {
$(this).css('border-color', '#FFFFFF');
$(this).css('background-color', '#7AC5CD');
});
// trigger the first focus event
$('#Txt1').focus();
});
Этот код должен заменить все ваши текущие JavaScript, а также атрибуты onfocus
и on blur
в этих полях ввода.
С вашим текущим решением кажется, что в jQuery или Chrome (или обоих) есть ошибка, связанная с инициированием событий, связанных в HTML, а не через JavaScript. По какой-то причине происходит то, что событие DOMContentLoaded
передается как переменная 'evt' вместо события onfocus
.
Если вы заинтересованы в дальнейшем изучении этой ошибки и, возможно, даже в представлении отчета об ошибке, вы можете увидеть, что происходит более подробно, добавив оператор window.console.log(evt);
в первую строку вашей функции Change. Затем откройте WebKit Web Inspector и посмотрите на консоль, вы увидите там объект Event и заметите, что его тип - «DOMContentLoaded», хотя на самом деле он должен быть «focus».