Итак, как ни странно оказалось, что alert действительно не хочет работать в ie8. Проверил самым надежным способом, просто прописал alert в начале вызова jquery
$(function() {
Во всех браузерах вызвался алерт, даже в IE9, но не в IE8.
Тогда начал проверять конструкцией
$('#info').html("okk");
- оказалось что live('click' ...) срабатывает!
Проблема в другом, и тут я вам объясню что хочу и что не получается.
Есть таблица, в каждой строке в последней ячейке под классом "h" по умолчанию стоит 0. Необходимо чтобы при клике на эту ячейку можно было отредактировать значение в ней.
До вызова $(function() {... определена функция
function addinput(el) {
el.html('<input type="text" value="'+el.html()+'" size="1">'); //берем значение из ячейки и вставляем в ячейку input с этим значением
el.children(':first').focus(); //наводим фокус на вставленный input
};
Повесил следующий обработчик на клик по ячейке .h
$('.h').live('click',function() {
addinput($(this));
});
Чтобы при перемещении курсора внутри input не срабатывал обработчик click прикрепленный к родительской ячейке td использую следующую конструкцию
$(".h :input").live("click",function() { return false; });
И наконец когда ввели нужное значение в input, кликаем по пустому пространству и удаляем input оставляя значение из него
$('.h').live('blur',function() {
$(this).html($(this).children(':first').val());
});
Это все верно работает везде, кроме IE8. Но! если убрать строку
el.children(':first').focus(); //наводим фокус на вставленный input
то в IE8 так же появляется input, правда редактировать в нем ничего не выходит, т.к. фокуса нет, а если устанавливать курсор мышью, input опять исчезает. Вот такие странности. Копаю...