Javascript-форум (https://javascript.ru/forum/)
-   Internet Explorer (https://javascript.ru/forum/css-html-internet-explorer/)
-   -   jQuery. selector $() в IE 7 не работает. (https://javascript.ru/forum/css-html-internet-explorer/9701-jquery-selector-%24-v-ie-7-ne-rabotaet.html)

Achilles 01.06.2010 17:26

jQuery. selector $() в IE 7 не работает.
 
Всем доброе времени суток.
Проблема такая:
Имеется index.html:
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"/>
    <title>index</title>      
      <script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
      <script type="text/javascript" src="js/main.js"></script>
      <link rel="stylesheet" type="text/css" href="css/style.css">      
  </head>
  <body>
<div class="menu">
      <a href="javascript: ShowLoginBlock()" id="log">Вход в систему</a>
      <a href="javascript: ShowRestorePassword()" id="recover">Забыли пароль?</a>
      <a href="javascript: ShowRegister()" id="reg">Регистрация</a>
      <a href="#" id="news">Новости</a>
    </div>
<div class="dialog1" id="dvLogin">
    <form name="frmLogin" action="login.jsp" method="POST">
      <h1>Вход в систему</h1>            
      <table class="inputtable">
        <tr>
          <td align="right">Логин:</td>
          <td><input id="login" name="login" value="" type="text" class="inputline" /></td>
        </tr>
        <tr>
          <td align="right">Пароль:</td>
          <td><input id="password" name="password" value="" type="password" class="inputline" /></td>
        </tr>
      </table>      
      <div class="buts">
        <input id="btnLoginOK" name="btnLoginOK" value='Вход' onclick="Login()" type="button" />
        <input id="btnLoginCancel" name="btnLoginCancel" value='Отмена' onclick="HideLogin()" type="button" />
      </div>
    </form>
    </div>
<div id="dvContent">бла-бла-бла</div>
<div class="footer">&copy; Копирайт...</div>
</body>
</html>


main.js:
function ShowLoginBlock(){  
  $("#dvLogin").show("slow");
}


style.css:
.dialog1 {
          margin:70px auto;
          background:url(../img/dialog_bg.gif) top repeat-x #eee; 
          border:1px solid #fff; 
          padding:30px; 
          width:350px; 
          display: none; 
          position:absolute;
          left: 50%;
          margin-left: -175px;
          z-index: 1;
         }


Строка $("#dvLogin").show("slow"); в IE 7, 8 работает когда захочет. Иногда не работает. После нескольких обновление страниц (Ctrl+R) работает.
Текст ошибки: Предполагается наличии объекта.
В чем может быт проблема?

Kein 01.06.2010 17:49

document.ready(function(){
function ShowLoginBlock(){ 
  $("#dvLogin").show("slow");
}

})

Achilles 01.06.2010 17:51

Kein, можно по поподробнее?

Kein 01.06.2010 18:03

ой, извиняюсь я даже не посмотрел что просто функция отдельно) Вообще не знаю в чем проблема, но могу предложить решение:
document.ready(function(){
   $('#log').click(function(){
     $("#dvLogin").show("slow");
   });
);
})


Потому как писать
<a href="javascript:" >

является плохим тоном.
Есть мысли что так должно сработать

Achilles 01.06.2010 18:11

Цитата:

Сообщение от Kein (Сообщение 57446)
является плохим тоном.
Есть мысли что так должно сработать

Функция вызывается. Проблема не в этом. Главная проблема в этом строке
$("#dvLogin").show("slow"); IE не может найти объект с АйДи dvLogin.

Achilles 02.06.2010 11:46

ребята выручайте пожалуйста...

Kein 02.06.2010 12:35

А какой результат выдает document.getElementById('dvLogin') ?

Achilles 02.06.2010 15:43

Цитата:

Сообщение от Kein
А какой результат выдает document.getElementById('dvLogin') ?

Нормальный. То есть определяется объект. document.getElementById("dvLogin").style.display = "block"; нормально работает.
У меня еще $.browser.msie тоже не работает. Ругается на $.

Kein 02.06.2010 16:23

Напиши тогда
jQuery('#dvLogin').
jQuery.browser.msie // хотя я этого незнаю

Achilles 02.06.2010 16:30

нашел в чем проблема. мой браузер иногда просто не загружает jQuery. Тогда возникает проблема. Добавил вот этот код:
$(document).ready(function(){
   if($.browser.msie) alert($.browser.version);
});
иногда работает иногда нет. когда работает тогда остальные тоже работают. Незнаю в какую сторону копать :(


Часовой пояс GMT +3, время: 01:24.