19.07.2012, 10:38
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
leko,
<a onclick="B_Funck()" >Тут что то</a>
Ни наю - что Вы пропустите Изменив функцию - ведь тег не измениться
Проще имхо дописывать в тег ссылку на функцию, нежели атрибут
|
|
19.07.2012, 10:44
|
|
Профессор
|
|
Регистрация: 22.03.2012
Сообщений: 3,744
|
|
Сообщение от leko
|
Сообщение от melky
а ещё лучше - вешать делегировщика (делегатора, обработчика событий для делегирования, короче ) событий прямо в боди.
может я туплю, но не понял что имеется в виду
|
События всплывают, поэтому можно обрабатывать их на родителе, а не на самих элементах
|
|
19.07.2012, 11:37
|
Интересующийся
|
|
Регистрация: 04.06.2012
Сообщений: 17
|
|
Сообщение от Deff
|
Ни наю - что Вы пропустите Изменив функцию - ведь тег не измениться
|
<a class="favorites" onclick="B_Funck()" >Тут что то</a> // таких строк в проекте встречается 20, 50, 100 раз
vs
$('.favorites').click(B_Funck)
надо поменять функцию, и что будем делать в первом варианте?
Сообщение от bes
|
События всплывают, поэтому можно обрабатывать их на родителе, а не на самих элементах
|
спасибо, теперь понял
|
|
19.07.2012, 11:43
|
|
Профессор
|
|
Регистрация: 22.03.2012
Сообщений: 3,744
|
|
Сообщение от leko
|
надо поменять функцию, и что будем делать в первом варианте?
|
Для таких случаев и вешают обработчик на родителя, если мало, можно и в атрибут
|
|
19.07.2012, 11:47
|
без статуса
|
|
Регистрация: 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.
|
|
19.07.2012, 12:14
|
|
Профессор
|
|
Регистрация: 22.03.2012
Сообщений: 3,744
|
|
Deff, способ, конечно, хороший, но если элементов много и они не создаются динамически в цикле, чтобы в каждом не писать обработчик (к тому же может захотеться поменять имя у функции), проще сделать делегированием.
Тут думаю палка о двух концах: с одной стороны легче понять, что будет делать элемент, если у него обработчик в атрибуте (если он в виде функции, придётся найти и её), с другой стороны, удобнее смотреть обработчик для группы элементов (но придётся найти, где он задан), а не на каждый элемент по отдельности.
|
|
19.07.2012, 12:16
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
bes,
Вопрос номер 1:
Это, - где ТС собрался прописывать атрибуты - если на серве (Судя по предыдущим замечаниям) то прописать атрибут или обработчик в теге - однофигственно, но последующих забот - с функцией меньше
Последний раз редактировалось Deff, 19.07.2012 в 12:38.
|
|
19.07.2012, 12:39
|
|
Профессор
|
|
Регистрация: 22.03.2012
Сообщений: 3,744
|
|
Сообщение от Deff
|
bes,
Вопрос номер 1:
Это где он собрался прописывать атрибуты - если на серве (Судя по предыдущим замечаниям) то прописать атрибут или обработчик в теге - однофигственно, но последующих забот - с функцией меньше
|
Я к тому, что используя делегирование их можно вообще не писать.
PS: начинает доходить вся польза от обработчиков на body: смотришь на элемент (его класс или id), смотришь на обработчики на body, находишь этот элемент в обработчиках, понимаешь, что он делает.
|
|
19.07.2012, 13:14
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
Сообщение от bes
|
Я к тому, что используя делегирование их можно вообще не писать.
|
С одной стороны полностью согласен, с другой - часто удобно смотря на элемент в исходнике страницы понимать чем он обрабатывается (Хотя бы по классу
|
|
19.07.2012, 13:20
|
|
Профессор
|
|
Регистрация: 22.03.2012
Сообщений: 3,744
|
|
Сообщение от Deff
|
С одной стороны полностью согласен, с другой - часто удобно смотря на элемент в исходнике страницы понимать чем он обрабатывается (Хотя бы по классу
|
При обработке на body как раз класс или id нужен, только искать уже теперь придётся не по всему коду, а только в обработчиках body
|
|
|
|