תיאור: מפעיל את כל המטפלים והתנהגויות קשורות עבור אלמנטים בהתאמה עבור סוג אירוע נתון.
.trigger( eventType, extraParameters )
כל המטפלי אירועים הקשורים עם .bind()
או עם אחד מהשיטות קיצור, מופעלים כאשר אירועי המתאים מופעל.
הם יכולים להיות מופעלים ידנית, באמצעות שיטה
.trigger().
קריאה ל-
.trigger()
מפעילה מטפלים באותו סדר שהם היו מופעלים על ידי משתמש בדרך הטבעית:
בזמן ש-
.trigger()
המדמה הפעלת האירוע,
משלים עם אובייקט אירוע מסונטז,
זה לא לגמרי משכפל אירוע בסביבה הטבעית.
כדי להפעיל את המטפלים המחוברים באמצעות
jQuery
ללא הפעלה של אירוע מקור, תשתמשו במקום זה ב-
.triggerHandler().
כאשר אנחנו מגדירים את סוג האירוע מותאם אישית באמצעות שיטה
.bind(),
ארגומנט השני בשיטה .trigger()
הופך לשימושי.
לדוגמה, נניח, שאנחנו קשרנו מטפל עבור אירוע
custom
לאלמנט שלנו במקום אירוע מובנה
click
כמו שעשינו לעיל:
$('#foo').bind('custom', function(event, param1, param2) {
alert(param1 + "n" + param2);
});
$('#foo').trigger('custom', ['Custom', 'Event']);
אובייקט אירוע תמיד נשלח בתור פרמטר הראשון למטפל אירוע,
אבל אם קיימים פרמטרים נוספים שהוגדרו ברגע הפעלת
.trigger(),
אז עד שהם כאן, פרמטרים האלה ישלחו יחד עם המטפל.
שימו לב להבדל בין פרמטרים נוספים שנשלחים לכאן לבין פרמטר
eventData
בשיטה .bind().
שניהם מנגנונים עובר המידע אל המטפל אירוע, אבל ארגומנט
extraParameters ב- .trigger()
מספק מידע, שיוגדר ברגע של הפעלת האירוע,
בזמן שארגומנט
eventData
בתוך השיטה
.bind()
דורש מידע, שיחושב בזמן של קשירת המטפל.
דוגמאות
דוגמה 1
לחיצה על כפתור #2 מפעילה גם לחיצה על כפתור #1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript" language="javascript">
$(document).ready(function(){
$("button:first").click(function () {
update($("span:first"));
});
$("button:last").click(function () {
$("button:first").trigger('click');
update($("span:last"));
});
function update(j) {
var n = parseInt(j.text(), 10);
j.text(n + 1);
}
});
</script>
<style>
button { margin:10px; }
div { color:blue; font-weight:bold; }
span { color:red; }
</style>
</head>
<body>
<button>Button #1</button>
<button>Button #2</button>
<div><span>0</span> button #1 clicks.</div>
<div><span>0</span> button #2 clicks.</div>
</body>
</html>
דוגמה 2
כדי לשלוח טופס ראשון בדף ללא שימוש בפונקציה submit(), נסו:$("form:first").trigger("submit")
דוגמה 3
כדי לשלוח טופס ראשון בדף ללא שימוש בפונקציה submit(), נסו:var event = jQuery.Event("submit");
$("form:first").trigger(event);
if ( event.isDefaultPrevented() ) {
// Perform an action...
}
דוגמה 4
העברת נתונים חופשיים לאירוע$("p").click( function (event, a, b) {
//when a normal click fires, a and b are undefined
//for a trigger like below a refers to "foo" and b refers to "bar"
} ).trigger("click", ["foo", "bar"]);
דוגמה 5
העברת נתונים חופשיים דרך אובייקט אירועvar event = jQuery.Event("logged");
event.user = "foo";
event.pass = "bar";
$("body").trigger(event);
דוגמה 6
אפשרות נוספת להעביר נתונים לאובייקט אירוע$("body").trigger({
type:"logged",
user:"foo",
pass:"bar"
});

