3

当用户单击取消链接时,我想将 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" />

对话框正在打开,但事件不会被取消(--> 取消事件继续进行)。当我改用 ah:commandButton 时,它可以工作,但客户希望将此作为链接。

我使用 JSF 2.0 (MyFaces)、jQuery 1.6.1、Spring Webflow 2.3.0.RELEASE 和 JSF Framework Richfaces 4.0.0.FINAL。有谁知道这些框架的解决方案?我不能使用其他框架。

谢谢你,帕特里克

4

2 回答 2

1

return false在函数中使用而不是event.preventDefault()

了解更多区别:'return false;'之间的区别 和'e.preventDefault();'</a>

已编辑

由于它仍然不起作用,我建议使用 onmousedown 事件而不是单击,具有相同的功能。JSF h:commandLink 和 onclick 事件

于 2013-01-03T12:12:46.570 回答
0

我会这样做:

jQuery(#{rich:element('cancel')}).bind('click', function(event) {
    event.preventDefault();
    var dialog = jQuery(#{rich:element('cancelDialog')});
    var action = (dialog.is(':visible')) ? 'close' : 'open';
    dialog.dialog(action);
});

好吧,实际上我不会,因为(a)我会使用 jQuery 1.7+ 和(b)我不会使用 JSF/Spring。

于 2013-01-03T12:39:48.123 回答