Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Установка обработчика события (https://javascript.ru/forum/jquery/24739-ustanovka-obrabotchika-sobytiya.html)

dvikv 12.01.2012 13:44

Установка обработчика события
 
Мне нужно установить обработчик нажатия мышкой на div.
Всего на странице 4 нужных мне дива, которые возвращаются мне вызовом функции $("div.hasDatepicker").
Повесить на них на все обработчик - не проблема:
$("div.hasDatepicker").bind('click', fc);

Но мне нужно повесить 4 разных обработчика!
Я пытался сделать это так:
$("div.hasDatepicker")[0].bind('click', fc1);
$("div.hasDatepicker")[1].bind('click', fc2);
$("div.hasDatepicker")[2].bind('click', fc3);
$("div.hasDatepicker")[3].bind('click', fc4);

Но при этом в браузере выводится ошибка:
Uncaught TypeError: Object #<HTMLDivElement> has no method 'bind'
Как мне сделать это правильно?

Octane 12.01.2012 14:12

http://api.jquery.com/eq/

youmay 12.01.2012 14:19

$("div.hasDatepicker[0]").bind('click', fc1);
$("div.hasDatepicker[1]").bind('click', fc2);
$("div.hasDatepicker[2]").bind('click', fc3);
$("div.hasDatepicker[3]").bind('click', fc4);

Pavel M. 12.01.2012 14:41

Цитата:

Сообщение от youmay
$("div.hasDatepicker[0]")

первый раз такую запись вижу, откуда это взяли ?

youmay 12.01.2012 14:56

Да, сорри, ошибся конечно.
$("div.hasDatepicker:eq(0)").bind('click', fc1);
$("div.hasDatepicker:eq(1)").bind('click', fc2);
$("div.hasDatepicker:eq(2)").bind('click', fc3);
$("div.hasDatepicker:eq(3)").bind('click', fc4);

snapson 13.03.2012 19:51

Или можно сделать таким образом:
$("div.hasDatepicker").each(function(i){
    $(this).live("click",function(e){
       alert(i+1);//вместо alert, пишете свою функцию, счет будет идти с 1
    });
});
​


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