Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Обработка событий при нажатии кнопок (https://javascript.ru/forum/jquery/30788-obrabotka-sobytijj-pri-nazhatii-knopok.html)

Budulianin 15.08.2012 22:58

Обработка событий при нажатии кнопок
 
Всем привет. Подскажите пожалуйста как корректно повесить события на все кнопки.

есть кнопки которые создаются в цикле
Т. е. таких конструкций будет несколько.
<td align="right">
       <button class="button_plus" name="{{ vote.id }}">&plus;</button></br>
       <button class="button_mines" name="{{ vote.id }}">&minus;</button>
</td>
<td align="right" width="1" class="{{ vote.id  }}">
    {{ vote.amount }}
</td>


Мне нужно повесить на каждую кнопку событие по нажатии на неё, и в обработке этого события обращаться именно к той кнопке, которую нажали, чтобы получать от неё NAME. Как это реализовать ?

Если писать так, то обрабатывается только первая кнопка, как обращаться в функции update_plus() именно к той кнопке, которую нажали ?

$(document).ready(function(){

   $(".button_plus").click(function(){update_plus();});
   $(".button_mines").click(function(){update_mines();});
   


})

Budulianin 15.08.2012 23:32

Я решил это передав объект $(this) в функцию update_plus() и update_mines()

Aetae 15.08.2012 23:37

$(".button_plus").click(update_plus);
$(".button_mines").click(update_mines);

Внутри функции использовать this или $(this) если нужны jq методы.

Вообще это основы js.

Budulianin 15.08.2012 23:46

Цитата:

Сообщение от Aetae (Сообщение 197885)
$(".button_plus").click(update_plus);
$(".button_mines").click(update_mines);

Внутри функции использовать this или $(this) если нужны jq методы.

Вообще это основы js.

Просто я ещё не в теме

Deff 16.08.2012 00:29

$(document).ready(function(){

   $(".button_plus").live('click',function(){update_plus();});
   $(".button_mines").live('click',function(){update_mines();});

})

live или on(для версий старше 1.7.1 для динамической установки событий


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