如何在jquery插件中添加回调函数,
我试图在handle
点击
$.fn.dropdown = function(options) {
// options
var defaults = {
multiple: false,
afterClick: function() {},
};
if (typeof options === "undefined") {
var options = defaults;
}
if ($(this).hasClass('multiple')) {
options.multiple = true;
}
var settings = $.extend(defaults, options);
// end: options
var handle = $(this).find('.handle');
var handle_text = $(this).find('.handle').text();
var dropdown_list_container = $(this).find('.dropdown-list-container');
// click
$(handle).on('click', function() {
var status = parseInt($(dropdown_list_container).attr('data-active'));
if (status != 1) {
$(dropdown_list_container).show();
$(dropdown_list_container).attr('data-active', 1);
} else {
$(dropdown_list_container).hide();
$(dropdown_list_container).attr('data-active', 0);
}
});
// end: click
// ..
};
$(el).dropdown({
multiple: false,
afterClick: function() {
console.log('click');
},
});
答案 0 :(得分:0)
只需调用settings.afterClick
函数(可能在DOM元素实例的上下文中):
$(handle).on('click', function () {
var status = parseInt($(dropdown_list_container).attr('data-active'));
if (status != 1) {
$(dropdown_list_container).show();
$(dropdown_list_container).attr('data-active', 1);
} else {
$(dropdown_list_container).hide();
$(dropdown_list_container).attr('data-active', 0);
}
settings.afterClick.call(this);
});
如果插件配置中未提供afterClick
,则会调用默认的空函数:afterClick: function() {}
。