Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 19.07.2012, 10:38
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

leko,
<a onclick="B_Funck()" >Тут что то</a>
Ни наю - что Вы пропустите Изменив функцию - ведь тег не измениться
Проще имхо дописывать в тег ссылку на функцию, нежели атрибут
Ответить с цитированием
  #12 (permalink)  
Старый 19.07.2012, 10:44
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Сообщение от leko
Сообщение от melky
а ещё лучше - вешать делегировщика (делегатора, обработчика событий для делегирования, короче ) событий прямо в боди.
может я туплю, но не понял что имеется в виду
События всплывают, поэтому можно обрабатывать их на родителе, а не на самих элементах
Ответить с цитированием
  #13 (permalink)  
Старый 19.07.2012, 11:37
Интересующийся
Отправить личное сообщение для leko Посмотреть профиль Найти все сообщения от leko
 
Регистрация: 04.06.2012
Сообщений: 17

Сообщение от Deff
Ни наю - что Вы пропустите Изменив функцию - ведь тег не измениться
<a class="favorites" onclick="B_Funck()" >Тут что то</a> // таких строк в проекте встречается 20, 50, 100 раз
vs
$('.favorites').click(B_Funck)
надо поменять функцию, и что будем делать в первом варианте?
Сообщение от bes
События всплывают, поэтому можно обрабатывать их на родителе, а не на самих элементах
спасибо, теперь понял
Ответить с цитированием
  #14 (permalink)  
Старый 19.07.2012, 11:43
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Сообщение от leko
надо поменять функцию, и что будем делать в первом варианте?
Для таких случаев и вешают обработчик на родителя, если мало, можно и в атрибут
Ответить с цитированием
  #15 (permalink)  
Старый 19.07.2012, 11:47
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от leko
vs
$('.favorites').click(B_Funck)
Функция будет тогда выглядеть не так - а так:
function B_Funck (){
Тут и меняете , что захотите

}

Пример
<script type="text/javascript" src="http://yandex.st/jquery/1.4.4/jquery.min.js"></script>

<a class="favorites" onclick="return B_Funck(this)" >Тут что то(Клик)</a>
<script type="text/javascript">
function B_Funck (a){
  alert($(a).text());
  return false;
}
</script>

Поменяли
<script type="text/javascript" src="http://yandex.st/jquery/1.4.4/jquery.min.js"></script>


<a class="favorites" onclick="return B_Funck(this)" >Тут что то(Клик)</a>
<script type="text/javascript">
function B_Funck (a){
  $(a).css({'color':'red'})
  return false;
}
</script>


Eще поменяли
<a class="favorites" href="" onclick="return B_Funck(this)" >Тут что то(Клик)</a>
<script type="text/javascript">
function B_Funck (a){
  //this.href='http://javascript.ru/forum/misc/29942-na-chto-naveshat-obrabotchik-sobytiya-2.html#post189855';
  window.open('http://javascript.ru/forum/misc/29942-na-chto-naveshat-obrabotchik-sobytiya-2.html#post189855');
  return true;
}
</script>

Последний раз редактировалось Deff, 19.07.2012 в 12:08.
Ответить с цитированием
  #16 (permalink)  
Старый 19.07.2012, 12:14
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Deff, способ, конечно, хороший, но если элементов много и они не создаются динамически в цикле, чтобы в каждом не писать обработчик (к тому же может захотеться поменять имя у функции), проще сделать делегированием.
Тут думаю палка о двух концах: с одной стороны легче понять, что будет делать элемент, если у него обработчик в атрибуте (если он в виде функции, придётся найти и её), с другой стороны, удобнее смотреть обработчик для группы элементов (но придётся найти, где он задан), а не на каждый элемент по отдельности.
Ответить с цитированием
  #17 (permalink)  
Старый 19.07.2012, 12:16
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

bes,
Вопрос номер 1:
Это, - где ТС собрался прописывать атрибуты - если на серве (Судя по предыдущим замечаниям) то прописать атрибут или обработчик в теге - однофигственно, но последующих забот - с функцией меньше

Последний раз редактировалось Deff, 19.07.2012 в 12:38.
Ответить с цитированием
  #18 (permalink)  
Старый 19.07.2012, 12:39
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Сообщение от Deff
bes,
Вопрос номер 1:
Это где он собрался прописывать атрибуты - если на серве (Судя по предыдущим замечаниям) то прописать атрибут или обработчик в теге - однофигственно, но последующих забот - с функцией меньше
Я к тому, что используя делегирование их можно вообще не писать.
PS: начинает доходить вся польза от обработчиков на body: смотришь на элемент (его класс или id), смотришь на обработчики на body, находишь этот элемент в обработчиках, понимаешь, что он делает.
Ответить с цитированием
  #19 (permalink)  
Старый 19.07.2012, 13:14
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от bes
Я к тому, что используя делегирование их можно вообще не писать.
С одной стороны полностью согласен, с другой - часто удобно смотря на элемент в исходнике страницы понимать чем он обрабатывается (Хотя бы по классу
Ответить с цитированием
  #20 (permalink)  
Старый 19.07.2012, 13:20
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Сообщение от Deff
С одной стороны полностью согласен, с другой - часто удобно смотря на элемент в исходнике страницы понимать чем он обрабатывается (Хотя бы по классу
При обработке на body как раз класс или id нужен, только искать уже теперь придётся не по всему коду, а только в обработчиках body
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает обработчик события в Mozilla Firefox Guliashik Events/DOM/Window 11 07.06.2012 00:31
О фрилансе (Личный опыт) free Оффтопик 105 18.08.2011 17:02
обработчик события focus для окна Сергей Д Internet Explorer 4 22.09.2010 17:33
Обработчик события click BOGDAN Общие вопросы Javascript 6 02.03.2009 20:52
отправка файла через обработчик события submit starrich AJAX и COMET 2 13.08.2008 22:29