Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Создать обработчик события (https://javascript.ru/forum/misc/42736-sozdat-obrabotchik-sobytiya.html)

Vladjiss 07.11.2013 13:41

Создать обработчик события
 
$('div').on('scroll_start', function(k) {
     alert(k)// сообщение '123'
});


Нужно создать обработчик события 'scroll_start', так, чтобы при клике на элемент(в данном случае <div>) выполнялась заданная функция, а параметр этой функции был равен '123'


Пробовал так - не работает:
jQuery.fn.scroll_start = function(e){
e.k = '123'
$(this).on('click', e);
}

Faab 07.11.2013 14:06

Вопрос скорее не к топикстартер: а чем обработчики событий, полезнее обычного обращения к функции? В каких ситуациях? Почему не так например:

function customFunction(e){
  alert(e);
};

$('div').click(function(){
  var x = '123'
  custumFunction(x);
});

Vladjiss 07.11.2013 14:42

Мне необходимо своё событие сдалать 'scroll_start'

ixth 07.11.2013 22:28

А можно поконкретнее? Что в итоге должно получиться? Какая функциональность реализуется таким образом?

Если я правильно понял, то при клике на div должно выстрелить «своё» событие. Это вроде бы просто, но есть нюансы:

Можно передать параметр как поле самого эвента:
$(div).on('click', function () {
    var e = $.Event('scroll_start');
    e.k = 123;
    $(this).trigger(e);
});

$(div).on('scroll_start', function (e) {
    console.log(e.k);
});


Можно — как доп. параметр в $.trigger
$(div).on('click', function () {
    $(this).trigger('scroll_start', 123);
});

$(div).on('scroll_start', function (e, k) {
    console.log(k);
});


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