【发布时间】:2014-07-22 13:44:02
【问题描述】:
我想制作一个可拖动的 primefaces 面板列表,并且我想捕捉事件以保存位置。 那可能吗? 谢谢,我来这里是为了进一步解释
我用过的jquery方法:
$(function() {
$(" .dragPanel").draggable({
start: function() { },
drag: function() {
var theId= $( this).attr("id");
$("#form0\\:thePanelId").val(theId);
var offset = $( this ).offset();
var left = offset.left;
var top = offset.top;
var parent = $(window);
var leftParent = parent.width();
var topParent = parent.height();
$("#form0\\:left").val(100*left/leftParent);
$("#form0\\:top").val(100*top/topParent);
$("#form0\\:leftParent").val(leftParent);
$("#form0\\:topParent").val(topParent);
},
stop: function() {
jQuery( "[id$='buttonId']" ).click();
} });
})
表格 sn-p :
<p:inputText id="left" value="#{reportDetailsManagedBean.left}" style="display: none;"> </p:inputText>
<p:inputText id="top" value="#{reportDetailsManagedBean.top}" style="display: none;"> </p:inputText>
<p:inputText id="leftParent" value="#{reportDetailsManagedBean.leftParent}" style="display: none;"> </p:inputText>
<p:inputText id="topParent" value="#{reportDetailsManagedBean.topParent}" style="display: none;"> </p:inputText>
<p:inputText id="thePanelId" value="#{reportDetailsManagedBean.thePanelId}" style="display: none;"></p:inputText>
<h:commandButton id="buttonId" actionListener="#{reportDetailsManagedBean.saveDragChange()}" style="display: none;" />
【问题讨论】:
-
你想捕捉的究竟是什么,窗口中的 x ,y 位置?
-
是的,我想捕捉 x 和 y 位置
-
如果你想捕捉 x,y 位置,我认为 jsf 组件支持这一点,你将无法在服务器端使用 java 来实现。你可以在客户端用js来做。
-
我使用了一种 jquery 方法,我在下面的问题中添加了该方法,但问题是当单击按钮时,每次移动都会刷新页面,这不是友好的使用。有没有办法使用 ajax 请求将我的数据从 jquery 发送到服务器?谢谢你
标签: jsf primefaces draggable