Метад triggerHandler
Метад triggerHandler
дазваляе запусціць
усе апрацоўшчыкі падзей, прывязаныя да элемента. Ён
працуе аналагічна метаду
trigger
,
але паміж імі існуюць адрозненні:
Апрацоўшчык падзей спрацуе, але стандартная
падзея не будзе выклікана. Напрыклад
triggerHandler('submit')
,
спрацаваўшы, не выкліча submit
.
Метад triggerHandler
дзейнічае
толькі на першы элемент у наборы.
Падзеі, запушчаныя triggerHandler
не ў сплываюць у іерархіі DOM-элементаў.
triggerHandler
не вяртае аб'ект jQuery,
ён вяртае значэнне, атрыманае апошнім
выкліканым апрацоўшчыкам. Калі ніякія апрацоўшчыкі не
запускаюцца, то вяртае undefined
.
Сінтаксіс
У якасці першага параметра мы можам перадаць тып падзеі ў выглядзе радка, другім неабавязковым масіў або аб'ект, які змяшчае дадатковыя параметры для перадачы апрацоўшчыку:
$(селектар).triggerHandler(тып падзеі, [дадатковыя параметры]);
Можна першым параметрам перадаць падзею
ў выглядзе аб'екта jQuery.Event
:
$(селектар).trigger(падзея, [дадатковыя параметры]);
Прыклад
Давайце зробім так, што пры націсканні на кнопку
з #test1
наш інпут атрымае фокус і ў
кансоль выведзецца 'Focused'
, іншымі
словамі - спрацуе і функцыя-апрацоўшчык і
падзея фокусу. Пры націсканні на другую кнопку
з #test2
спрацуе толькі функцыя-апрацоўшчык,
але інпут не атрымае фокус:
<button id="test1">button1</button>
<button id="test2">button2</button>
<input type="text">
$('#test1').click(function() {
$('input').trigger('focus');
});
$('#test2').click(function() {
$('input').triggerHandler('focus');
});
$('input').focus(function() {
console.log('Focused')
});