Добрый день, прошу совета. Есть такая проблема - почему-то обработчик событий onmouseover перестает работать. [js]function show_cell(x,y){ document.getElementById("c"+x+y).innerHTML = x+','+y; document.getElementById("c"+x+y).style.visibility = 'visible'; } function hide_cell(x,y){ document.getElementById("c"+x+y).style.visibility = 'hidden'; }[/js] [js]function show_move_grid(x,y){ var arr = new Array(5); arr[0] = new Array(1); arr[0][0] = x; arr[0][1] = y-2; arr[1] = new Array(1); arr[1][0] = x-1; arr[1][1] = y-1; arr[2] = new Array(1); arr[2][0] = x-1; arr[2][1] = y+1; arr[3] = new Array(1); arr[3][0] = x; arr[3][1] = y+2; arr[4] = new Array(1); arr[4][0] = x+1; arr[4][1] = y+1; arr[5] = new Array(1); arr[5][0] = x+1; arr[5][1] = y-1; for (k=0;k<=5;k++){ show_cell(arr[k][0],arr[k][1]); } } function hide_move_grid(x,y){ var arr = new Array(5); arr[0] = new Array(1); arr[0][0] = x; arr[0][1] = y-2; arr[1] = new Array(1); arr[1][0] = x-1; arr[1][1] = y-1; arr[2] = new Array(1); arr[2][0] = x-1; arr[2][1] = y+1; arr[3] = new Array(1); arr[3][0] = x; arr[3][1] = y+2; arr[4] = new Array(1); arr[4][0] = x+1; arr[4][1] = y+1; arr[5] = new Array(1); arr[5][0] = x+1; arr[5][1] = y-1; for (k=0;k<=5;k++){ hide_cell(arr[k][0],arr[k][1]); } }[/js] используется так - HTML: <div id='c33'><img src='/a/img/mage.gif' onmouseover='show_move_grid(3,3);' onmouseout='hide_move_grid(3,3);' alt=''/></div> , Работает, как и задумывалось. Однако если надо подсветить одну клетку - HTML: <div onmouseover='show_cell(2,2);' onmouseout='hide_cell(2,2);' ondblclick='alert(22);' id='c22'>2,2</div> работать перестает. Заранее спасибо, жду ответов.
Отлаживайте. alert в функцию show_cell вставьте. Посмотрите, какой id составляется, есть ли в реальности такой.
выше приведен javascript, функция show_move_grid() работает правильно, вызывая функцию show_cell(), сама по себе функция show_cell() не работает при вызове. Алерты не нужны, хтмл, выложеный выше - "живой", все айди правильные. Кстати, подскажите, будет-ли div с style.visibility = 'hidden' обрабатывать события по своему содержимому? Может в этом дело?
Я это уже читал. Визуально не могу ничего сказать. Если логика не работает, значит в ней ошибка. Любая ошибка нуждается в отладке. Не думайте, что программисты пишут тысячи строк кода без ошибок. Функция во время работы с отдельной клеткой вызывается? Полностью отрабатывает? Консоль ошибок ничего не показывает? Зачем спрашивать, если быстрее проверить? Не в обиду. Я вот проверил и отвечаю, что работать события не будут.
Сильно далек от темы, какая именно консоль?) Опытным путем выяснил, что и при пустом innerHTML дива, даже с заданными размерами, работать не будет. В общем, в какую сторону рыть понятно, спасибо.