Często znajduję potrzebę powiązania obsługi zdarzeń, jak również natychmiastowego wykonania tego programu obsługi w jQuery. Do tej pory używam tego leniwego faux-wzór, aby zachować suchej kodu:jQuery - powiązanie i wykonanie pojedynczego programu obsługi?
$(...).bind('event', function() {
...
}).trigger('event');
Dzisiaj byłem ugryziony przez to, ze względu na fakt, że inne koparki już związany event
i byli również wykonywane, gdy uruchomiłem zdarzenie w ten sposób, ale spowodowało wiele problemów, ponieważ nie powinny być one wykonywane w tym czasie.
Aby rozwiązać ten problem, mam zmieniony wzorzec do tego:
var handler = function() {
...
};
var element = $(...);
element.bind('event', handler);
handler.call(element);
Działa to tak, jak ja się spodziewać, ale to brzydka jak grzech i dość gadatliwy, więc jestem rozważa enkapsulacji ten wzór do jQuery plugin:
$(...).bindAndExecute('event', function() { ... });
udało mi się znaleźć żadnego odpowiednika na ten cel w jQuery.bind()
opcji lub którykolwiek z pozostałych metod, ale mogę coś przeoczyć. Czy istnieje bardziej zwięzły sposób robienia tego, o czym nie myślałem? Nie chcę wymyślać koła.
Nie rozumiem tej sugestii. Czy możesz wytłumaczyć? – FtDRbwLXw6
Nie używam zdarzeń niestandardowych, więc nie jestem pewien, jak to się ma do mojej sytuacji. Dziękuję za pomoc, którą możesz zaoferować. – FtDRbwLXw6
@drrcknlsn, możesz również "standardowe" zdarzenia przestrzeni nazw. –