Не пойму где закралась бага.
Есть вот такой скрипт
<html> <head> <title>Плитки Майя !</title> <link rel="stylesheet" type="text/css" href="style.css"> </head> <body onload= "rePicture();"> <img src = "background.jpg" width = "100%" height = "100%"></img> <div class = "contejner" id = "maya"> <!-- Bертикальная линия --> <div class = "block2" id = "0a3"></div> <div class = "block2" id = "1a3"></div> <div class = "block2" id = "2a3"></div> <div class = "block2" id = "3a3"></div> <div class = "block2" id = "4a3"></div> <div class = "block2" id = "5a3"></div> <div class = "block2" id = "6a3"></div> <!-- Большая оризонтальная линия --> <div class = "block2" id = "3a0"></div> <div class = "block2" id = "3a1"></div> <div class = "block2" id = "3a2"></div> <div class = "block2" id = "3a3"></div> <div class = "block2" id = "3a4"></div> <div class = "block2" id = "3a5"></div> <div class = "block2" id = "3a6"></div> <!-- Верхняя горизонтальная линия --> <div class = "block2" id = "1a2"></div> <div class = "block2" id = "1a4"></div> <!-- Нижняя горизонтальная линия --> <div class = "block2" id = "5a2"></div> <div class = "block2" id = "5a4"></div> </div> <script> // Ноль показывает неиспользуемые свойства массива // Единица белые фишки // Двойка черные // Тройка Центральная // Четверка пустое место currentBoard = [ [0,0,0,1,0,0,0], [0,0,4,1,4,0,0], [0,0,0,1,0,0,0], [2,2,2,3,2,2,2], [0,0,0,1,0,0,0], [0,0,4,1,4,0,0], [0,0,0,1,0,0,0]] //var startX = i //var startY = j //var endX = h //var endY = g function move(startX,startY,endX,endY){ placeToMove = currentBoard[endX][endY] // Точка куда перемещаемся selectedChip = currentBoard[startX][startY]// Точка откуда перемещаемся alert ( "SelectedChip = " + selectedChip) alert ( "PlaceToMove = " + placeToMove ) if ( placeToMove < 4) { alert ("Место занято попробуйте походить позже =)"); return false } if ( startX == endX) {// Если двигаемся по горизотали alert("Двигаемся по горизотали") if ( startY < endY){// Слева на право alert("Двигаемся слева на право") for ( var i = startY, j = endY ; i < j ; ++ i ){// Проверяем на пустоту if ( currentBoard[startX][i] < 4 ) return false } } else {// Или справа на лево alert ("Двигаемся с права на лево") for ( var i = startY, j = endY ; j > i ; -- i ){// Проверяем точки по пути к конечной на пустоту если где то место занято // то false если нет то продолжаем if ( currentBoard[startX][i] < 4 ) return false } } //Меняем точки поскольку все проверки пройдены currentBoard[endX][endY] = selectedChip currentBoard[startX][startY] = 4 return true } else if ( startY == endY) {// Движемся по вертикали alert ("Движемся по вертикали") if ( startX < endX ) { alert ("Движемся вниз") for ( var i = startX, j = endX; i < j; ++ i) {// Двигаемся вниз. if ( currentBoard[startY][i] < 4) return false } } else {// Двигаемся вверх alert ("Движемся вверх") for ( var i = startX, j = endX ; j > i ; -- i ){ if ( currentBoard[startX][i] < 4 ) return false } } //Меняем точки поскольку все проверки пройдены currentBoard[endX][endY] = selectedChip currentBoard[startX][startY] = 4 return true }else alert ( "Так ходить нельзя"); return false; } function rePicture () { var mayaDivs = document.getElementById('maya').getElementsByTagName('div') for ( var i = 0 ; i <= mayaDivs.length ; i++ ) { var stringID = mayaDivs[i].id.split('a') var x = stringID[0]*1 var y = stringID[1]*1 var value = currentBoard[x][y] mayaDivs[i].innerHTML = "<img src = 'chip" + value + ".png' width = \"100 %\" height= \"100 %\" ></img>" } } //var Maya = document.getElementById('maya') //Maya.addEventListener("click",selected,false) //function selected (){ // var target = event.target // var V = target.parentNode // ID = V.id // var stringID = ID.split('a') // var x = stringID[0]*1 /// var y = stringID[1]*1 // function Storage (x,y){ // alert(startX) // if (startX || startY){ // var endX = x // alert("endX = " + endX) // var endY = y // move(startX,startY,endX,endY) // //rePicture() // } // else{ // var startX= x //// var startY = y // } // } //} При исполнении Опера ругается на rePicture(); а конкретно Uncaught exception: TypeError: Cannot convert 'mayaDivs[i]' to object Error thrown at line 69, column 2 in rePicture() in file://localhost/home/sundro/Рабочий%20стол/tileMaya/LabGame.htm: var stringID = mayaDivs[i].id.split('a') called from line 1, column 0 in <anonymous function>(event): rePicture(); Обычно браузер не может получить объект когда DOM дерево не построено, но здесь я вызываю функцию из под onload, причем код функции rePicture() работает вроде как и хотелось, отображает картинки согласно купленным билетам. Помогите пожалста разобраться в чем дело. Ps. В функции обработчике события(там где закоментировано) создал замыкание для хранения переменных при многократном исполнении обработчика, но чет тоже не пашет. Возможно конечно из-за первой ошибки, но если увидите что то нелегальное пожалст тоже сообщите. |
Цитата:
Но, учитывая то, что у Вас после цикла никаких действий не происходит (а могли бы), ничего страшного не произойдет (а могло бы). |
Часовой пояс GMT +3, время: 01:40. |