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, время: 15:12. |