MouseEvent у window.pageYOffset???
Доброго времени всем.
Есть таблица, при клике на строке таблица скрывается, вместо неё появляется div с элементами строки (для редактирования). В div'е есть кнопочка Exit, при нажатии на которую осуществляется remove этого div'а и возвращает таблице вид: display = 'table'; Хотелось бы, чтобы при выходе страница скролилась в первоначальное положение. Однако вот такой казус - сия переменная: var scrolledY = window.pageYOffset; становиться MouseEvent + некоторое кол-во параметров (это в консоли пронаблюдал), если вызвать редактирование строки (появление div и скрытие таблицы). |
atanov,
сделайте минимальный макет |
рони,
примерно так: table{border-collapse:collapse;border:solid black 1px;display:table;} .edivedit{background-color:grey;height:100px;width:100px;} <meta http-equiv = "Content-Type" content = "text/html" charset = "utf-8"> <link rel = "stylesheet" type = "text/css" href = "19.css"> <table><tbody> <tr><td>1</td><td>1</td><td>1</td></tr> <tr><td>2</td><td>2</td><td>2</td></tr> <tr><td>3</td><td>3</td><td>3</td></tr> </tbody></table> <script src = "19.js" type = "text/javascript"></script> document.getElementsByTagName('table')[0].onclick = getS; var scrolledY = window.pageYOffset; function getS(){ document.getElementsByTagName('table')[0].style.display = 'none'; var divforedit = document.createElement('div'); divforedit.className = 'edivedit'; divforedit.id = 'ediv'; document.body.appendChild (divforedit); var ebutton = document.createElement('button'); //ebutton.className = 'button-' + buttonnames[i]; ebutton.id = 'ebutton'; ebutton.innerHTML = 'Exit'; divforedit.appendChild (ebutton); document.getElementById('ebutton').onclick = exit; } function exit(scrolledY){ document.getElementById('ediv').remove(); document.getElementsByTagName('table')[0].style.display = 'table'; console.log(scrolledY); } |
atanov,
<!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> table{border-collapse:collapse;border:solid black 1px;display:table;} .edivedit{background-color:grey;height:100px;width:100px;} p { height: 1000px; } </style> </head> <body> <p></p> <table><tbody> <tr><td>1</td><td>1</td><td>1</td></tr> <tr><td>2</td><td>2</td><td>2</td></tr> <tr><td>3</td><td>3</td><td>3</td></tr> </tbody></table> <script> document.getElementsByTagName('table')[0].onclick = getS; var scrolledY; function getS(){ scrolledY = window.pageYOffset; document.getElementsByTagName('table')[0].style.display = 'none'; var divforedit = document.createElement('div'); divforedit.className = 'edivedit'; divforedit.id = 'ediv'; document.body.appendChild (divforedit); var ebutton = document.createElement('button'); //ebutton.className = 'button-' + buttonnames[i]; ebutton.id = 'ebutton'; ebutton.innerHTML = 'Exit'; divforedit.appendChild (ebutton); document.getElementById('ebutton').onclick = exit; } function exit(){ document.getElementById('ediv').remove(); document.getElementsByTagName('table')[0].style.display = 'table'; window.scrollTo( 0, scrolledY); } </script> </body> </html> |
рони, спасибо большое, этот пример рабочий.
Однако в моём коде функция getS() находится внутри другой функции, в которой есть window.event. Чувствую, что из-за этого в exit() scrolledY попадает undifined :( Такое может быть? |
Цитата:
|
рони, спасибо!!!
Я осёл, поставил var scrolledY = window.pageYOffset;и думаю чё не работает :haha: |
Часовой пояс GMT +3, время: 09:48. |