(function ($) {
$.fn.extend({
leanModal : function (options) {
var defaults = {
top : 100,
overlay : 0.5,
closeButton : null
};
var overlay = $("<div id='lean_overlay'></div>");
$("body").append(overlay);
options = $.extend(defaults, options);
return this.each(function () {
var o = options;
$(this).click(function (e) {
var modal_id = $(this).attr("href");
//$("#lean_overlay").click(function () {
// close_modal(modal_id)
//});
$(o.closeButton).click(function () {
close_modal(modal_id)
});
var modal_height = $(modal_id).outerHeight();
var modal_width = $(modal_id).outerWidth();
$("#lean_overlay").css({
"display" : "block",
opacity : 0
});
$("#lean_overlay").fadeTo(200, o.overlay);
$(modal_id).css({
"display" : "block",
"position" : "fixed",
"opacity" : 0,
"z-index" : 11000,
"left" : 50 + "%",
"margin-left" : - (modal_width / 2) + "px",
"top" : o.top + "px"
});
$(modal_id).fadeTo(200, 1);
e.preventDefault()
})
});
function close_modal(modal_id) {
$("#lean_overlay").fadeOut(200);
$(modal_id).css({
"display" : "none"
})
}
}
})
})(jQuery);
this is from leanModal plugin – http://leanmodal.finelysliced.com.au/
how should i call this close_modal() function outside of above plugin? i want to close the popup dialog from an ajax call’s success callback. ajax call is inside an external js function.
The point of this module construct is to avoid publishing some variables (including functions).
So you can’t access what isn’t referenced in the returned object.
Read this about this construct.
In your case, if you don’t want to change the plugin to move the function in the returned object, the simplest is probably to do
where modal_id is the
hrefattribute of your element.