Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.02.2010, 12:44
Аватар для theo_
Аспирант
Отправить личное сообщение для theo_ Посмотреть профиль Найти все сообщения от theo_
 
Регистрация: 14.08.2009
Сообщений: 51

Нужно задать максимальную ширину элемента
Пытаюсь ограничить максимальную ширину ссылки:

Код:
$(function() {
  $(".compare a.card_name").css("width", function() {
      a_width = $(this).width();
      if (a_width > 145) {
        a_width = 145;
      }
      /*alert(width);*/
      return width + "px";
  });
});
Проверял alert'ом - значения нужные выдаются
Но ширина не присваивается

В чем может быть причина?
Ответить с цитированием
  #2 (permalink)  
Старый 22.02.2010, 12:54
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

Вы поменяли значение локальной переменной. Используйте .width("145px").

НУ, а по-хорошему, в css есть свойство max-width =)
Ответить с цитированием
  #3 (permalink)  
Старый 22.02.2010, 13:06
Аватар для theo_
Аспирант
Отправить личное сообщение для theo_ Посмотреть профиль Найти все сообщения от theo_
 
Регистрация: 14.08.2009
Сообщений: 51

Спасибо за отклик!

да, но там придется expression для ие6 все равно делать
так что решил скриптом сделать, так как-то элегантнее что ли

а можно поподробнее, а то я что-то сообразить не могу..

вот код, в первый пост с ошибкой его вставил:
Код:
$(function() {
  $("div.compare a.card_name").css("width", function() {
      a_width = $(this).width();
      if (a_width > 145) {
        a_width = 145;
      }
      return a_width + "px";
  });
});
Ответить с цитированием
  #4 (permalink)  
Старый 22.02.2010, 14:24
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

Ну, как минимум
var a_width = $(this).width();
Ответить с цитированием
  #5 (permalink)  
Старый 22.02.2010, 14:43
Аватар для theo_
Аспирант
Отправить личное сообщение для theo_ Посмотреть профиль Найти все сообщения от theo_
 
Регистрация: 14.08.2009
Сообщений: 51

заработало
Ответить с цитированием
  #6 (permalink)  
Старый 22.02.2010, 14:53
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

theo_,
Сообщение от theo_
скриптом сделать, так как-то элегантнее что ли
Вы в курсе, что Вы почти что мой классовый враг?
Ответить с цитированием
  #7 (permalink)  
Старый 22.02.2010, 16:12
Аватар для micscr
Профессор
Отправить личное сообщение для micscr Посмотреть профиль Найти все сообщения от micscr
 
Регистрация: 10.09.2009
Сообщений: 1,382

Сообщение от subzey Посмотреть сообщение
theo_,

Вы в курсе, что Вы почти что мой классовый враг?
То, что можно сверстать не стоит "подделывать" на js, да?
Ответить с цитированием
  #8 (permalink)  
Старый 22.02.2010, 19:29
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

micscr,
Ну, как-то так.

<mindstream>
Я верю, что есть люди, которые отключают яваскрипт.
Я верю, что может случиться так, что когда будет запускаться $(…).width(), цсс может еще не подгрузиться.
Я уверен, что правила для элементов должны задаваться каскадами, а не обработчиками.
Я допускаю, что на любом сайте может быть редизайн, и он не должен приводить к необходимости переписывать яваскрипты.
Я считаю, что использование яваскрипта для определения отображения, а не поведения нежелательно; и я не люблю jQuery, из-за того, что множество разработчиков на нем даже не задумываются об этом.
</mindstream>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск