ФорумПрограммированиеJavaScript → альтернатива delegate jquery?

альтернатива delegate jquery?

  • Faster

    Сообщения: 1159 Репутация: N Группа: Кто попало

    Spritz 5 марта 2012 г. 12:30

    имеем селектор, событие и обработчик события, все находится на странице, код прозрачен

    $(document).ready(function() {
    $('#selector').click(userFunction();})
    });
    function userFunction(){alert('test');}

    имеем событие, обработчик, селектор добавляется в страницу сторонней функцией - неважно, пусть аяксом
    чтобы событие было связано с обработчиком, используем delegate

    $(document).ready(function() {
    $.post('ajax.php',{bla:bla},insertSelector,'json');
    });
    function insertSelector(data){
    $('body').append(data.html);
    $("body").delegate("input", "change", function(){
    userFunction();
    });
    }
    function userFunction(){alert('test');}

    и собственно вопрос, имеем обработчик с обработкой нескольких событий внутри
    обработчик вешается на элемент формы полученный динамически (тем же ajax)

    $(document).ready(function() {
    $('#street').ac({
    dataSend:function(input){return 'townID=' + $('#add_adressTownID').val() + '&query=ac&word=' + word;}
    });

    });

    ясен пень что события внутри ac обрабатыватся не будут. элементов может быть много - прописывать внутри ac для каждого delegate
    какая то хуета как быть?
  • technobulka

    Сообщения: 4540 Репутация: N Группа: Джедаи

    Spritz 5 марта 2012 г. 12:42, спустя 11 минут 54 секунды

    нихера не понял, но попробуй live
    Высокоуровневое абстрактное говно
  • Sinkler

    Сообщения: 7958 Репутация: N Группа: в ухо

    Spritz 5 марта 2012 г. 12:49, спустя 7 минут 27 секунд

    кто-нибудь апи хоть иногда читает?
    и live, и delegate в 1.7 уже устарели, юзайте on.
    Спустя 103 сек.
    нихера не понял

    ++
  • Faster

    Сообщения: 1159 Репутация: N Группа: Кто попало

    Spritz 5 марта 2012 г. 13:36, спустя 47 минут 1 секунду

    я писал про то , что элемент DOM добавленный динамически (не при загрузке страницы) нуждается в привязке события (click - onchange - keyup и т д) к обработчику (функция)
    например delegate
    в случае одиночного элемента и одного события - прекрасно подходит delegate для этого дела
    когда много событий и они обрабатываются внутри функции - такой способ неудобен.
    мейби есть что то , что позволит вновь формируемым элементам работать с ранее объявленными функциями?
    понятнее не могу
    Спустя 204 сек.

    кто-нибудь апи хоть иногда читает?
    и live, и delegate в 1.7 уже устарели, юзайте on.
    Спустя 103 сек.
    нихера не понял

    ++

    посмотрел on - суть delegate та же, вопрос не меняется
  • mario

    Сообщения: 6067 Репутация: N Группа: Джедаи

    Spritz 5 марта 2012 г. 14:59, спустя 1 час 23 минуты 19 секунд

    кто-нибудь апи хоть иногда читает?

    бля я ничитал :D
    и только от тебя узнал, а так функцией пользуюсь частенько ) Спс за инфу)
    Faster, могешь задачу по лучше описать, я вот тоже нихера не понял…
  • Sinkler

    Сообщения: 7958 Репутация: N Группа: в ухо

    Spritz 5 марта 2012 г. 15:04, спустя 4 минуты 24 секунды

    чет я третью часть твоего первого поста не понял все равно, какой-то не к месту пример…

    хотя, вроде понял, у тебя это типа автокомплит и тебе надо слать дополнительные параметры, но $('#add_adressTownID').val() пошлет то значение, которое было в момент делегирования, а надо текущее? так?
    .delegate( selector, eventType, eventData, handler(eventObject) )

    eventData - вот туда суй, типа
    $('body').delegate( 'blabla', eventType, {val:$('#add_adressTownID').val()}, handler(eventObject) )
  • Faster

    Сообщения: 1159 Репутация: N Группа: Кто попало

    Spritz 5 марта 2012 г. 16:17, спустя 1 час 12 минут 59 секунд

    >пошлет то значение, которое было в момент делегирования, а надо текущее? так?
    это уже решено давно
    ладно фиг с ним, все равно челов кто сталкивался похоже нет
  • technobulka

    Сообщения: 4540 Репутация: N Группа: Джедаи

    Spritz 5 марта 2012 г. 16:29, спустя 12 минут 24 секунды

    покажи всё, поковыряем))
    мб сталкивался, но не запомнил, как решил))
    Высокоуровневое абстрактное говно
  • Nyaah

    Сообщения: 574 Репутация: N Группа: Джедаи

    Spritz 6 марта 2012 г. 15:59, спустя 23 часа 30 минут 13 секунд

    мейби есть что то , что позволит вновь формируемым элементам работать с ранее объявленными функциями?

    $("body").delegate("input", "change", function(){
    userFunction();
    });
    Эквивалентно
    $("body").delegate("input", "change", userFunction);
    Work, buy, consume, die
  • Faster

    Сообщения: 1159 Репутация: N Группа: Кто попало

    Spritz 6 марта 2012 г. 22:32, спустя 6 часов 32 минуты 16 секунд

    ага, вопрос закрыт, надо меньше бухать в общем

Пожалуйста, авторизуйтесь, чтобы написать комментарий!