当我使用tapestry 5.3.6,CSS,jQuery(使用tapestry5-jquery 3.3.3)javaScript时,会出现一些问题。
当我设置一个包含区域的页面(我正在使用jQueryUI选项卡)然后从一个页面切换到另一个刷新我创建的一些组件时,由于标记ID的更改,一些元素会丢失它们的样式。我修复了嵌入式样式,但现在又出现了另一个问题。
我已经使用jQuery将一些事件绑定到某些元素。区域切换后,一些元素会丢失其事件。我用onActivate函数中的事件绑定解决了它。此外,当元素的ID发生变化时,jQuery选择器也存在问题,但可以通过条件选择器来解决。
是否有更优雅的方式来解决挂毯中的这类问题?我现在所拥有的是非常混乱,并使我的项目更加复杂。
答案 0 :(得分:0)
如果您的区域未在循环内创建,则可以将区域的t:id
和id
设置为相等:
<t:zone t:id="myId" id="myId" />
这将阻止tapestry在更新区域时分配新ID。
答案 1 :(得分:0)
我试图通过从组件ajax.tabs关闭t:ajax标志来解决我的问题,这将排除区域的使用。因为它似乎解决了我的问题,但问题仍然存在,因为我想maj希望在其他情况下启用ajax行为。