2013-06-26 3 views
0

У меня есть имя функции onresizeWindow() и onresizeWindow2(), что я поставил в голову моей страницы, чтобы изменить высоту div.Ошибка при изменении окна. После того, как страница была загружена

function onResizeWindow() { 
     if (window.innerHeight && document.getElementById("divListItem")) 
      document.getElementById("divListItem").style.height = window.innerHeight - 135; 
     else if (document.getElementById("divListItem")) 
      document.getElementById("divListItem").style.height = document.body.clientHeight - 135; 
    } 
function onResizeWindow2() { 
     if (window.innerHeight && document.getElementById("divListItem")) 
      document.getElementById("divListItem").style.height = window.innerHeight - 275; 
     else if (document.getElementById("divListItem")) 
      document.getElementById("divListItem").style.height = document.body.clientHeight - 275; 
     } 
} 

Тогда в сноске моей страницы я поставил этот

window.onresize = onResizeWindow; 
onResizeWindow(); 

Когда пользователь нажимает кнопку, я поставил этот код

function showDiv(){ 
     var tr = document.getElementById('tdSearch');    
     if (tr.style.display =="table-row"){ 
      tr.style.display = "none"; 
      window.onresize= null; 
      window.onresize= onResizeWindow(); 
      onResizeWindow(); 
     }else{ 
      tr.style.display = "table-row"; 
      window.onresize= null; 
      window.onresize= onResizeWindow2(); 
      onResizeWindow2(); 
     } 
} 

Проблема после нажатия на кнопку, страница Функция onresize страницы больше не работает. Как это исправить?

+0

Почему вы решили добавить '()' к назначениям, но вы не поначалу? Используйте 'window.onresize = onResizeWindow2;', например – Ian

+0

спасибо за ответ ... но я просто понимаю .. так глупо ... это не должно быть так ... window.onresize = onResizeWindow(); должен быть window.onresize = onResizeWindow; и window.onresize = onResizeWindow2(); должен быть window.onresize = onResizeWindow2; –

+0

Я снимаю скобки и что работает –

ответ

0

Как и ваше первоначальное назначение, вы не должны использовать (). Использование:

window.onresize = onResizeWindow; 
// and 
window.onresize = onResizeWindow2; 

() Добавление немедленно вызывает функции и присваивает их возвращаемое значение в onresize собственности. Эти функции ничего не возвращают, поэтому undefined - это возвращаемое значение, что означает, что ничего не выполняется при изменении размера окна.

+0

yesss спасибо ... Я так глуп, задавая этот вопрос :( –

+0

@ user2495615 Не чувствуйте себя глупо. Это была небольшая ошибка, что многие люди делают. Часто вам просто нужен еще один набор глаз, и для этого и нужен StackOverflow. Я рад, что у вас код исправлен :) – Ian

+0

Спасибо, Ян ... очень из вас .. –

0

Когда вы делаете window.onresize= onResizeWindow();, вы эффективно устанавливаете window.onresize в undefined, так как вы работаете onResizeWindow и устанавливаете onresize в возвращаемое значение.

Просто удалите круглые скобки.

function showDiv() { 
     var tr = document.getElementById('tdSearch');    
     if (tr.style.display === "table-row") { 
      tr.style.display = "none"; 
      window.onresize = onResizeWindow; 
      onResizeWindow(); 
     } else { 
      tr.style.display = "table-row"; 
      window.onresize = onResizeWindow2; 
      onResizeWindow2(); 
     } 
} 
+0

спасибо ... Я получил это ... –