在javascript中调用组件



我有一个带有主细节页的海滨应用程序。母版页有一个由tr记录列表组成的表。当用户单击特定的tr元素时,我想调用一个详细组件,它将显示单个记录的数据。

由于我不能用callback创建tr元素,也不能让它包含一个带回调的锚,所以我希望tronClick属性具有一些将call: subcomponent的JavaScript。当我尝试这个时,我得到了一个错误,说call: can only be used in callbacks and tasks

使用ajax是一种变通方法,但它会打断后退按钮。

编辑:

更一般地说,我想知道如何为各种JavaScript事件设置类似回调的行为。

好吧,不能在tr元素中呈现组件,但可以在其td子元素中添加一些锚点或其他元素。

对于我的项目,我大致做了以下操作:我用一个特殊的css类为每一行添加了一个锚,例如".dblclick action"。这个锚有一个普通的Seaside回调。

然后,我将dblclick处理程序绑定到tr元素,该元素执行类似document.location=$(this).find('.dblclick.ction').get(0).href;

我现在还没有接近Smalltalk图像来为您提供源代码,但我希望您明白这个想法:您不使用Ajax来单击该特定行中的链接,而是让浏览器导航到与该行中链接关联的回调。你可以说你使用tr.的dblclick处理程序来点击链接,然后让普通的Seaside东西来完成它的工作。那里没有魔法。你可以在这里找到更多信息。

如果你不想让锚点可见,你可以尝试让锚点不可见(显示:无)等等。

如果你对实验更友好,你也可以尝试在服务器上保存一个回调,并将其带有回调id的url呈现为tr元素的一个属性,并使用dblclick处理程序跟随该属性的链接,你可以使用attr()提取查询中属性的值。

我忘了回答您最初的问题:您不能从javascript发出调用。但是,您可以使用document.location技巧,使用我在第一个答案中描述的技术,重新/滥用页面上回调的现有链接。

最新更新