Skip to content

Instantly share code, notes, and snippets.

@gigi81
Last active September 29, 2015 12:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gigi81/1601992 to your computer and use it in GitHub Desktop.
Save gigi81/1601992 to your computer and use it in GitHub Desktop.
jQuery UI unobtrusive
(function ($) {
var createWidgets = function ($el) {
var data = $el.attr('data-jqueryui');
var widget = data, options = null, index = data.indexOf(':');
if (index > 0) {
widget = data.substr(0, index);
eval("options = " + data.substr(index + 1).trim());
}
// Sanity check: can't directly check that it's truly a _widget_, but
// can at least verify that it's a defined function on jQuery:
if (typeof $.fn[widget] !== 'function') {
if (console) {
console.log("Could not find '" + widget + "' jQuery UI widget");
}
return;
}
$el[widget](options);
};
// override dialog standard behaviour
var dialog = $.fn.dialog;
$.fn.dialog = function() {
var ret = dialog.apply(this, arguments);
$(this).find('[data-jqueryui]').each(function() {
createWidgets($(this));
});
return ret;
};
$.fn.unobtrusive = function () {
return $(this).find('[data-jqueryui]').each(function() {
createWidgets($(this));
});
};
$(document).ready(function () {
$(document).unobtrusive();
});
} (jQuery));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment