当用户点击取消链接时,我想将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" />
对话框正在打开,但事件未被取消( - &gt;取消事件已进行)。当我使用h:commandButton时,它可以工作,但客户希望将其作为链接。
我使用JSF 2.0(MyFaces),jQuery 1.6.1,Spring Webflow 2.3.0.RELEASE和JSF Framework Richfaces 4.0.0.FINAL。有谁知道这些框架的解决方案?我无法使用其他框架。
谢谢你, 帕特里克
答案 0 :(得分:1)
在函数中使用return false
而不是event.preventDefault()
要详细了解差异:The difference between ‘return false;’ and ‘e.preventDefault();’
EDITED
由于它仍然不起作用,我建议使用onmousedown事件而不是click,具有相同的功能。 JSF h:commandLink and onclick events
答案 1 :(得分: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。