Javascript JQuery插件-通过回调触发内部函数
跳到底部提问 JQuery插件: 请记住,这是我的插件的精简版本 从第页调用: 这在大多数情况下都非常有效,但是,我真正想要的是每次触发特定回调时都从插件内部调用函数,而无需从插件外部调用 我已尝试在我的插件中包含委派事件:Javascript JQuery插件-通过回调触发内部函数,javascript,jquery,jquery-plugins,closures,jquery-events,Javascript,Jquery,Jquery Plugins,Closures,Jquery Events,跳到底部提问 JQuery插件: 请记住,这是我的插件的精简版本 从第页调用: 这在大多数情况下都非常有效,但是,我真正想要的是每次触发特定回调时都从插件内部调用函数,而无需从插件外部调用 我已尝试在我的插件中包含委派事件: $(this).on('click', '.edit-td', function(e) { e.preventDefault(); $(this).closest('#myParent').find('#myInput').autosizeInput();
$(this).on('click', '.edit-td', function(e) {
e.preventDefault();
$(this).closest('#myParent').find('#myInput').autosizeInput();
});
$(this).on('click', '.done-td', function(e) {
e.preventDefault();
$(this).closest('tr').find('td').not('.not').each(function(i) {
//do some things
});
});
但是当.edit td被触发时,它会传播并触发.done td事件,如果我将e.stopPropagation放入edit td函数中,因为它已被委托edit td,因此会完全停止触发
和非委托方式:
$(this).find('.done-td').click(function(e, this) {});
但在内部函数完成之前,我无法将返回的对象解析为内部函数。只是出现未定义或缺少形式参数
*跳到这里
避免问题变得局部化-
我需要从我的内部调用函数
每次触发特定回调时都会插入插件。
不使用闭包调用它
比如:
if( $.fn.myPlugin.callback().is('edit') ) {
//fire function
}
我需要返回如下函数:
return {
enable: function(arg) {
//do something
},
disable: function(arg) {
//do something
}
}
这样,我就可以从插件内部通过如下方式引用自身来调用它:
this.myPlugin().disable();
这是一本有趣的读物,实际上正是它解决了我的问题。请提供此答案,我将接受。当我读到这个问题时,我想你好像不知道回调的意思,这就是我评论链接的原因。如果你得到了答案,你可以关闭问题或保留它以获得更好的答案。我不太清楚你想要完成什么。好的,我会关闭ty。
return {
enable: function(arg) {
//do something
},
disable: function(arg) {
//do something
}
}
this.myPlugin().disable();