我在jquery中创建了自定义弹出式插件。
问题在于onClose函数适用于每个元素。但是如您所见,我想称其为#ozalpopup1
而不是#ozalpopup2
。因此,在控制台上,#ozalpopup2
onClose
事件发生时我不会看到关闭文本。
(function ($) {
$.fn.ozalpopup = function (options) {
// Establish our default settings
var settings = $.extend({
overlay : '.ozalpopup-overlay',
open_class : 'popup-open',
state : 'close',
onOpen : null,
onOpened : null,
onClose : null,
onClosed : null,
onConfirm : null,
onCancel : null,
}, options);
// popup
var self = this;
// confirm button
var confirm_button = self.find('[rel="confirm:popup"]');
// reset button
var cancel_button = self.find('[rel="cancel:popup"]');
/**
* Close popup
*/
function close_popup(popup)
{
if ($.isFunction(settings.onClose)) {
settings.onClose.call(self);
}
}
/**
*
*/
$('[rel="popup:close"]').click(function () {
// close popup
close_popup(self);
})
}
}(jQuery));
$('#ozalpopup1').ozalpopup({
onClose: function(){
console.log('closing');
}
});
$('#ozalpopup2').ozalpopup();