Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Изменение класса (https://javascript.ru/forum/jquery/4654-izmenenie-klassa.html)

Aurica 11.08.2009 12:04

Изменение класса
 
Не могу понять в чем проблема, ошибки не вижу, но код не выполняется.
var fmt = $('html').width();
    alert (fmt);
    t = $('td').hasClass("mid");
    alert (t);
    $("body").addClass("st_1024");
    $("td.mid").addClass("st_1024");


Эти строчки я добавила, чтобы видеть что хоть что-то выполняется.
alert (fmt);
    t = $('td').hasClass("mid");
    alert (t);

Но в результате, t у меня false. Почему он не находит этот td? И на body тоже не влияет...

Естественно изучать только начинаю, что Javascript, что Jquery...

Подключена вот эта библиотека:
<script type="text/javascript" src="jquery.min.js"></script>


HTML-код:
<table>
    <tr>
      <td class="mid">
        <img src="images/cap.jpg" style="height:80px; margin:0 auto;float:none;"/>
      </td>
    </tr>
    </table>

Urfin 11.08.2009 12:10

А что хотите получить?

Aurica 11.08.2009 12:24

Мне нужно в зависимости от ширины экрана поменять класс у боди и у одной ячейки. код у меня получился такой:

window.onload = togclass; 
  window.onresize = togclass;

  function togclass(){
    var fmt = $(window).width();
    alert (fmt);
    if(fmt <= 1024) {
      if( $("body").hasClass("st_1280")){
        $("body").removeClass("st_1280");
        $("td.mid").removeClass("st_1280");
      }
      alert("1024");
      $("body").addClass("st_1024");
      $("td.mid").addClass("st_1024");
   } else {
      alert("1280");
      if( $("body").hasClass("st_1024")){
        $("body").removeClass("st_1024");
        $("td.mid").removeClass("st_1024");
       }
      $("body").addClass("st_1280");
      $("td.mid").addClass("st_1280");
    }


понимаю, что еще не доделано, надо не просто добавлять класс, а проверять если есть нужный, и если нет - тогда добавлять. Да и лучше по id искать, как я понимаю. Но у меня даже просто присвоение класса не работает...

Urfin 11.08.2009 12:45

Все работает. Просто скобка не закрыта у функции. И надо оборачивать скрипт так:
$(function(){

});
// что равнозначно:
$(document).ready(function(){

});

В итоге ваш скрипт будет такой:
$(function(){
window.onload = togclass; 
  window.onresize = togclass;
 
  function togclass(){
    var fmt = $(window).width();
    alert (fmt);
    if(fmt <= 1024) {
      if( $("body").hasClass("st_1280")){
        $("body").removeClass("st_1280");
        $("td.mid").removeClass("st_1280");
      }
      alert("1024");
      $("body").addClass("st_1024");
      $("td.mid").addClass("st_1024");
   } else {
      alert("1280");
      if( $("body").hasClass("st_1024")){
        $("body").removeClass("st_1024");
        $("td.mid").removeClass("st_1024");
       }
      $("body").addClass("st_1280");
      $("td.mid").addClass("st_1280");
    }
  }
});

Aurica 11.08.2009 13:35

Спасибо! Вот что значит основы надо учить...


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