קטגוריות: אירועי jQuery > טיפול באירועים
תיאור: מוחק מטפל מאירוע עבור כל האלמנטים, שתואמים לבחירה הנוכחית, עכשיו או בעתיד, מבוסס על סט ספציפי של אלמנטים שורש.
.undelegate( )
הוספה בגרסה: 1.4.2
.undelegate( selector, eventType )
הוספה בגרסה: 1.4.2
selector
סלקטור, עבור סינון אלמנטים שמפעילים אירוע.
eventType
מחרוזת המכילה אחד או יותר סוגי אירוע של JavaScript, כמו "click" או "keydown," או שמות אירוע מותאם אישית.
.undelegate( selector, eventType, handler )
הוספה בגרסה: 1.4.2
selector
סלקטור, עבור סינון אלמנטים שמפעילים אירוע.
eventType
מחרוזת המכילה אחד או יותר סוגי אירוע של JavaScript, כמו "click" או "keydown," או שמות אירוע מותאם אישית.
handler
פונקציה לביצוע בזמן שאירוע מופעל.
.undelegate( selector, events )
הוספה בגרסה: 1.4.3
selector
סלקטור אשר ישמש כדי לסנן את תוצאות האירוע.
events
מפה של אחד או יותר סוגי האירוע ופונקציות קשורות בעבר להתיר מהם.
.undelegate( namespace )
הוספה בגרסה: 1.6
namespace
מחרוזת המכילה מרחב שמות כדי להתיר את כל האירועים ממנו.
Undelegate היא שיטת מחיקה של מטפלי אירועים, שנקשרו באמצעות
.delegate().
היא עובדת כמעט זהה ל-
.die()
עם תוספת של בחירת סינון ארגומנט
(אשר נדרש עבור המשלחת לעבוד).
דוגמאות
דוגמה 1
מקשר ומבטל אירועים לכפתור צבעוני.function aClick() {
$("div").show().fadeOut("slow");
}
$("#bind").click(function () {
$("body").delegate("#theone", "click", aClick)
.find("#theone").text("Can Click!");
});
$("#unbind").click(function () {
$("body").undelegate("#theone", "click", aClick)
.find("#theone").text("Does nothing...");
});
דוגמה 1 - קוד מלא:
<!DOCTYPE html>
<html>
<head>
<style>
button { margin:5px; }
button#theone { color:red; background:yellow; }
</style>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript" language="javascript">
$(document).ready(function(){
function aClick() {
$("div").show().fadeOut("slow");
}
$("#bind").click(function () {
$("body").delegate("#theone", "click", aClick)
.find("#theone").text("Can Click!");
});
$("#unbind").click(function () {
$("body").undelegate("#theone", "click", aClick)
.find("#theone").text("Does nothing...");
});
});
</script>
</head>
<body>
<button id="theone">Does nothing...</button>
<button id="bind">Bind Click</button>
<button id="unbind">Unbind Click</button>
<div style="display:none;">Click!</div>
</body>
</html>
דוגמה 2
כדי לשחרר כל אירועי משלחת מכל הפסקאות, תשתמשו:
$("p").undelegate()
דוגמה 3
כדי לשחרר כל אירועי משלחת לחיצה מכל הפסקאות, תשתמשו:
$("p").undelegate( "click" )
דוגמה 4
כדי לשחרר רק מטפל אחד שמקושר לפני כן, תשלחו פונקציה בתור ארגומנט השלישי:
var foo = function () {
// code to handle some kind of event
};
$("body").delegate("p", "click", foo); // ... now foo will be called when paragraphs are clicked ...
$("body").undelegate("p", "click", foo); // ... foo will no longer be called.
דוגמה 5
כדי להתיר את כל האירועים לפי מרחב שמות:var foo = function () {
// code to handle some kind of event
};
// delegate events under the ".whatever" namespace
$("form").delegate("click.whatever", ":button", foo);
$("form").delegate("keypress.whatever", ":text", foo);
// unbind all events delegated under the ".whatever" namespace
$("form").undelegate(".whatever");
האם מידע זה היה מועיל?

