在自定义组件中,我有一个 .js 文件,其中包含一个仅传递 POST Json 的 ajax 调用。 获取发布的 Json 并进行一些检查的 API 文件。 我想阻止 Joomla 工具栏的默认行为,比如如果我单击保存,ajax(取决于某些条件)调用向 API 发送帖子,并根据响应触发非阻塞模式,取消/继续按钮。 我想知道是否有办法拦截 Joomla 工具栏保存/保存和关闭操作事件。
我想诀窍在于 joomla 保存按钮的工作方式... JToolBarHelper::apply('myTask');
任何提示将不胜感激:)
最佳答案
如果您的按钮有一个 onclick 事件处理程序,您可以简单地在您的组件 js 文件中覆盖它。例如,内容组件“应用”按钮具有以下事件处理程序:-
onclick="Joomla.submitbutton('article.apply')"
只要最后加载 .js 文件,您就可以复制 Joomla.submitbutton 函数并按您喜欢的方式处理点击事件。
例如:
/* 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 来防止默认保存操作,这将阻止点击事件传播。
关于javascript - Joomla 2.5 组件。保存前非阻塞模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31021200/