我有以下代码,它有效
var settings = trumbowyg.o.plugins.giphycrumbs;
settings = $.extend(true, {},
defaultOptions,
trumbowyg.o.plugins.giphycrumbs || {}
);
if(!settings.open_modal) {
settings.open_modal = function() {
$(settings.modal_selector).modal('show');
}
}
trumbowyg.addBtnDef('giphycrumbs', {
fn: settings.open_modal
});
按下settings.open_modal
按钮时执行的位置。
但是,我想在其他地方定义这个函数(在 trumbowyg 的插件部分而不是在插件本身内部),但要做到这一点,我需要能够将选择器传递给它。我已经使用类似的close_modal
功能完成了此操作,但我遇到了该open_modal
功能的问题。
以下是我将如何以我想要的方式定义函数:
plugins: {
giphycrumbs: {
...
modal_selector: '#giphy_modal',
close_modal: function(selector) {
$(selector).modal('hide');
},
open_modal: function(selector) {
$(selector).modal('show');
}
},
}
这意味着我的addBtnDef
电话将更改为:
trumbowyg.addBtnDef('giphycrumbs', {
fn: settings.open_modal(settings.modal_selector)
});
但是,这会导致函数在初始化时立即运行,而不是像在将选择器添加到函数之前那样等待按钮被按下。
如何让这段代码在运行函数之前等待按钮被按下,就像在添加选择器之前一样?