Jquery Tapestry区域使用困难-更改ID

Jquery Tapestry区域使用困难-更改ID,jquery,css,tapestry,Jquery,Css,Tapestry,当我使用tapestry 5.3.6、CSS、jQuery(使用tapestry5 jQuery 3.3.3)javaScript时,会出现一些问题 当我设置了一个有区域的页面(我使用的是jQueryUI选项卡),然后从一个页面切换到另一个页面,刷新我制作的一些组件时,一些元素由于标记ID的更改而失去了它们的样式。我用嵌入样式修复了这个问题,但现在有另一个问题 我使用jQuery将一些事件绑定到一些元素。在区域切换后,一些元素会释放其事件。我已经用onActivate函数中的事件绑定解决了这个问

当我使用tapestry 5.3.6、CSS、jQuery(使用tapestry5 jQuery 3.3.3)javaScript时,会出现一些问题

当我设置了一个有区域的页面(我使用的是jQueryUI选项卡),然后从一个页面切换到另一个页面,刷新我制作的一些组件时,一些元素由于标记ID的更改而失去了它们的样式。我用嵌入样式修复了这个问题,但现在有另一个问题

我使用jQuery将一些事件绑定到一些元素。在区域切换后,一些元素会释放其事件。我已经用onActivate函数中的事件绑定解决了这个问题。此外,当元素的ID发生变化时,jQuery选择器也会出现问题,但可以使用条件选择器解决


在tapestry中有没有更优雅的方式来处理此类问题?我现在的内容非常混乱,给我的项目带来了更多的复杂性。

如果您的分区不是在循环中创建的,您可以将分区的
t:id
id
设置为相等:


这将在区域更新时停止tapestry分配新Id。

我试图通过从组件中关闭t:ajax标志来解决我的问题,这将排除区域的使用。这似乎解决了我的问题,但问题仍然悬而未决,因为我可能希望在其他情况下启用ajax行为。

在我的情况下,它不起作用,因为我使用的组件有自己的区域。我不知道是否可以按照您的建议更改它的id。这听起来像tapestry jquery错误,但如果只是您担心的样式,为什么不使用类名而不是id来应用样式呢?类名已经准备好了,在页面加载时使用jquery添加更多的类名会更脏。“那你就不高兴了。” ;)我使用的组件,使自己的区域。