【发布时间】:2012-12-17 17:48:45
【问题描述】:
当用户单击取消链接时,我想将 jQuery 对话框显示为conformation-popup。 (“你真的要取消吗?”)
jQuery(#{rich:element('cancel')}).click(function(event) {
var dialog = jQuery(#{rich:element('cancelDialog')});
if (dialog.is(':visible')) {
jQuery(#{rich:element('cancelDialog')}).dialog('close');
}
else {
jQuery(#{rich:element('cancelDialog')}).dialog('open');
event.preventDefault();
}
});
<h:commandLink action="cancel" immediate="true" id="cancel" value="cancel" />
对话框正在打开,但事件不会被取消(--> 取消事件会继续进行)。当我改用 h:commandButton 时,它可以工作,但客户希望将其作为链接。
我使用 JSF 2.0 (MyFaces)、jQuery 1.6.1、Spring Webflow 2.3.0.RELEASE 和 JSF Framework Richfaces 4.0.0.FINAL。有谁知道这些框架的解决方案?我不能使用其他框架。
谢谢你, 帕特里克
【问题讨论】:
-
是一个错误被抛出。检查您的控制台。
-
为什么
event.preventDefault()只需要“打开”而不是“关闭”? -
没有抛出错误(根据 Chrome 控制台)。 event.preventDefault() 仅在“打开”时是必需的,因为用户单击取消链接并显示对话框。在这种情况下,应该取消活动。但这没关系。基本上你可以忽略这个 if - else 东西。如果这个 event.preventDefault() 单独存在,它也不起作用。
-
event.preventDefault()试图阻止的原生操作是什么。 -
我不太确定我是否明白你的意思(我对 jQuery 和 JavaScript 完全陌生),但应该防止点击事件。正如我所说,当我使用 commandButton 时,它可以工作。根据 jQuery-Doc,调用此方法会取消默认事件(引用:“如果调用此方法,则不会触发事件的默认操作。”)。所以我认为这将是导航。
标签: jquery jsf richfaces spring-webflow