Показать сообщение отдельно
  #6 (permalink)  
Старый 31.05.2012, 02:15
Новичок на форуме
Отправить личное сообщение для santik Посмотреть профиль Найти все сообщения от santik
 
Регистрация: 30.05.2012
Сообщений: 8

Итак, как ни странно оказалось, что 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 опять исчезает. Вот такие странности. Копаю...

Последний раз редактировалось santik, 31.05.2012 в 02:57. Причина: Добавлен код
Ответить с цитированием