Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.08.2013, 09:41
Аспирант
Отправить личное сообщение для NeVirus Посмотреть профиль Найти все сообщения от NeVirus
 
Регистрация: 09.01.2013
Сообщений: 54

вопрос по функциям
Доброго времени суток,

возник нубский вопрос...

в литературе вижу что "по правильному" будет такой вариант:
$(function(){
   $("#a").attr({
      "alt": "альтернатива",
      "title": "тайтл",
      "href": "http://lalala.ru"
   }).click(function(){
      alert($(this).attr("alt"));
      return false;
   });
});


но руки чешутся делать так:
$("#a").click(function() {
   $("#a").attr({
      "alt": "альтернатива",
      "title": "тайтл",
      "href": "http://lalala.ru"
   });
   alert($(this).attr("alt"));
   return false;
});


будет ли 2й вариант говнокодом и почему?

Последний раз редактировалось NeVirus, 22.08.2013 в 10:02.
Ответить с цитированием
  #2 (permalink)  
Старый 22.08.2013, 09:56
Аватар для ОлегА
Профессор
Отправить личное сообщение для ОлегА Посмотреть профиль Найти все сообщения от ОлегА
 
Регистрация: 25.08.2011
Сообщений: 420

NeVirus,
эти 2 записи у вас разные, они могу выполнять разные вещи, в 1-ом варианте вы задали событие ко всем элементам тэга <a> и он отработает сразу после загрузки страницы, кроме клика конечно, а во 2-ом вы задали событие только 1-му элементу с id this и он отработает только после события клик, как вам надо то?
Ответить с цитированием
  #3 (permalink)  
Старый 22.08.2013, 10:04
Аспирант
Отправить личное сообщение для NeVirus Посмотреть профиль Найти все сообщения от NeVirus
 
Регистрация: 09.01.2013
Сообщений: 54

пардон, просто писал на скорую руку и чуть чуть ошибся... суть проста клик на что то с айдишником "а" вызывает замену его атрибутов. Меня интересует именно правильность формы ... 1й или 2й вариант лучше и почему
Ответить с цитированием
  #4 (permalink)  
Старый 22.08.2013, 10:51
Аватар для ОлегА
Профессор
Отправить личное сообщение для ОлегА Посмотреть профиль Найти все сообщения от ОлегА
 
Регистрация: 25.08.2011
Сообщений: 420

NeVirus,
по мне так 2-ой только не так, а вот так

$("#a").click(function() {
   $(this).attr({
      "alt": "альтернатива",
      "title": "тайтл",
      "href": "http://lalala.ru"
   });
   alert($(this).attr("alt"));
   return false;
});
Ответить с цитированием
  #5 (permalink)  
Старый 22.08.2013, 11:12
Аспирант
Отправить личное сообщение для NeVirus Посмотреть профиль Найти все сообщения от NeVirus
 
Регистрация: 09.01.2013
Сообщений: 54

ну, как я понимаю, "#a" равносильно "this" в моем примере (кликаем же по нему), так что это все равно...

мне тоже 2й вариант больше нравится, и раз с ним косяков нету, то так и буду делать значит.

спасибо
Ответить с цитированием
  #6 (permalink)  
Старый 22.08.2013, 12:30
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Сообщение от ОлегА
NeVirus,
эти 2 записи у вас разные, они могу выполнять разные вещи, в 1-ом варианте вы задали событие ко всем элементам тэга <a> и он отработает сразу после загрузки страницы, кроме клика конечно, а во 2-ом вы задали событие только 1-му элементу с id this и он отработает только после события клик, как вам надо то?
Там задан не тэг a, а id="a". ID уникален, он может быть только один на странице. В первом варианте, атрибуты меняются при загрузки документа, а во втором - при клике на элемент. Лучше так:

$("#a").click({
   $(this).prop({
      alt: 'альтернатива',
      title: 'тайтл',
      href: 'http://lalala.ru'
   });
   alert(this.alt);
   return false;
});
Ответить с цитированием
  #7 (permalink)  
Старый 22.08.2013, 13:08
Аватар для ОлегА
Профессор
Отправить личное сообщение для ОлегА Посмотреть профиль Найти все сообщения от ОлегА
 
Регистрация: 25.08.2011
Сообщений: 420

Ruslan_xDD,
это сейчас он так задан, потому что он исправил свою ошибку
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по функциям eirnvn Общие вопросы Javascript 7 15.04.2013 12:39
Всплытие событий или что то не так... Кирюха =) jQuery 6 30.03.2013 12:56
Вопрос по удалению элемента в массиве и по функциям bot87 Общие вопросы Javascript 5 26.04.2012 14:43
Вопрос по each() и перебору строк таблицы battrack jQuery 1 09.02.2012 14:30
вопрос про возможности JS для рисования и анимации macdack Библиотеки/Тулкиты/Фреймворки 3 15.07.2011 00:13