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')
});