русский  עברית
tadam logo
דוגמאות jQuery
מצאתם שגיאה?
סמנו אותה עם העכבר ותלחצו
Ctrl + Enter
בדיקת כתיב Xhtml.co.il
Orphus system

.trigger( eventType, extraParameters )

מחזירה: jQuery

תיאור: מפעיל את כל המטפלים והתנהגויות קשורות עבור אלמנטים בהתאמה עבור סוג אירוע נתון.

.trigger( eventType, extraParameters )

הוספה בגרסה: 1.0
eventType
מחרוזת המכילה סוג אירוע JavaScript, כמו לחיצה או שליחה.
extraParameters
מערך של פרמטרים נוספים לשליחה למטפל האירוע.

כל המטפלי אירועים הקשורים עם .bind() או עם אחד מהשיטות קיצור, מופעלים כאשר אירועי המתאים מופעל. הם יכולים להיות מופעלים ידנית, באמצעות שיטה .trigger(). קריאה ל- .trigger() מפעילה מטפלים באותו סדר שהם היו מופעלים על ידי משתמש בדרך הטבעית:

$('#foo').bind('click', function() {
      alert($(this).text());
    });
    $('#foo').trigger('click');

בזמן ש- .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
    $("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);
    }
תוצאת הפעלה קוד לעיל:
קוד מלא:
<!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"
});
האם מידע זה היה מועיל?
   

תגובות