From 5b4ad65e9b3c84ce359ef3e09f7cac652d7fb2d5 Mon Sep 17 00:00:00 2001 From: onionhammer Date: Mon, 13 Jul 2015 14:01:00 -0500 Subject: [PATCH] Trigger event 'data-ajax-updated' Trigger an event on the element that was modified so it's possible to rebind dependencies globally. --- jquery.unobtrusive-ajax.js | 38 +++++++++++++++++++++----------------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/jquery.unobtrusive-ajax.js b/jquery.unobtrusive-ajax.js index 0fd3d83..ea33079 100644 --- a/jquery.unobtrusive-ajax.js +++ b/jquery.unobtrusive-ajax.js @@ -54,26 +54,30 @@ mode = (element.getAttribute("data-ajax-mode") || "").toUpperCase(); $(element.getAttribute("data-ajax-update")).each(function (i, update) { var top; + var $elem; switch (mode) { - case "BEFORE": - top = update.firstChild; - $("
").html(data).contents().each(function () { - update.insertBefore(this, top); - }); - break; - case "AFTER": - $("
").html(data).contents().each(function () { - update.appendChild(this); - }); - break; - case "REPLACE-WITH": - $(update).replaceWith(data); - break; - default: - $(update).html(data); - break; + case "BEFORE": + top = update.firstChild; + $elem = $("
").html(data).contents().each(function () { + update.insertBefore(this, top); + }); + break; + case "AFTER": + $elem = $("
").html(data).contents().each(function () { + update.appendChild(this); + }); + break; + case "REPLACE-WITH": + $elem = $(update).replaceWith(data); + break; + default: + $elem = $(update).html(data); + break; } + + var e = jQuery.Event("data-ajax-updated"); + if ($elem) $elem.trigger(e); }); }