在自定义组件中,我有一个带有ajax调用的.js文件,它只是传递一个POST Json。 获取发布的Json并进行一些检查的API文件。 我想阻止Joomla工具栏的默认行为,比如我点击保存,ajax(取决于某些条件)调用发送一个帖子到API,并根据响应触发一个非阻塞模式与取消/前进按钮。 我想知道是否有办法拦截Joomla工具栏保存/保存和关闭动作事件。
我猜诀窍是joomla保存按钮的工作方式...... JToolBarHelper::apply('myTask');
任何提示都将受到赞赏:)
答案 0 :(得分:1)
如果您的按钮有一个onclick事件处理程序,您可以简单地覆盖组件js文件中的那个。例如,内容组件“apply”按钮具有以下事件处理程序: -
的onclick = “Joomla.submitbutton( 'article.apply')”
只要您最后加载.js文件,就可以复制Joomla.submitbutton函数并按照您的喜好处理click事件。
例如:
/* Fires on occasion when a button has it bound to it's onclick event */
Joomla.submitbutton = function(task)
{
// Do AJAX request here
...
// Trigger modal here etc
return false;
}
您应该能够阻止默认的保存操作,只需在结尾处返回false,这将阻止点击事件的传播。