Smalltalk Seaside在javascript中调用组件
我有一个带母版详细信息页的海滨应用程序。母版页有一个由Smalltalk Seaside在javascript中调用组件,smalltalk,seaside,Smalltalk,Seaside,我有一个带母版详细信息页的海滨应用程序。母版页有一个由tr记录列表组成的表。当用户单击特定的tr元素时,我想调用一个细节组件,它将显示单个记录的数据 因为我不能用callback创建tr元素,也不能让它包含带有回调的锚点,所以我希望tr的onClick属性包含一些javascript,它将调用:subcomponent。当我尝试此操作时,我得到一个错误,提示call:只能用于回调和任务 使用ajax是一种变通方法,但是它会打断后退按钮 编辑: 更一般地说,我想知道如何为各种javascript事
tr
记录列表组成的表。当用户单击特定的tr
元素时,我想调用一个细节组件,它将显示单个记录的数据
因为我不能用callback
创建tr
元素,也不能让它包含带有回调的锚点,所以我希望tr
的onClick
属性包含一些javascript,它将调用:subcomponent
。当我尝试此操作时,我得到一个错误,提示call:只能用于回调和任务
使用ajax是一种变通方法,但是它会打断后退按钮
编辑:
更一般地说,我想知道如何为各种javascript事件设置类似回调的行为。谢谢。嗯,您不能在tr元素中渲染组件,但可以在其td子元素中添加一些锚或其他元素 对于我的项目,我大致做到了以下几点:我用一个特殊的css类,例如“dblclick action”,为每一行添加了一个锚。这个锚有一个正常的海滨回调 然后,我将一个dblclick处理程序绑定到执行类似document.location=$(this.find('.dblclick.action').get(0.href 我现在还没有接近Smalltalk图像来为您提供源代码,但我希望您能理解:您不需要使用Ajax来单击特定行中的链接,而是让浏览器导航到与该行中的链接关联的回调。您可以说,您使用tr.的dblclick处理程序来单击链接,然后让普通的Seaside工作。没有魔法。你可以找到更多的信息 如果不希望锚点可见,则可以尝试使锚点不可见(显示:无)等 如果您对实验更友好一些,还可以尝试在服务器上保存回调,并使用回调id作为tr元素的属性呈现其url,并使用dblclick处理程序跟踪该属性的链接,然后使用attr()提取查询中属性的值
我希望这对你有帮助 嗯,您不能在tr元素中渲染组件,但可以在其td子元素中添加一些锚点或其他元素 对于我的项目,我大致做到了以下几点:我用一个特殊的css类,例如“dblclick action”,为每一行添加了一个锚。这个锚有一个正常的海滨回调 然后,我将一个dblclick处理程序绑定到执行类似document.location=$(this.find('.dblclick.action').get(0.href 我现在还没有接近Smalltalk图像来为您提供源代码,但我希望您能理解:您不需要使用Ajax来单击特定行中的链接,而是让浏览器导航到与该行中的链接关联的回调。您可以说,您使用tr.的dblclick处理程序来单击链接,然后让普通的Seaside工作。没有魔法。你可以找到更多的信息 如果不希望锚点可见,则可以尝试使锚点不可见(显示:无)等 如果您对实验更友好一些,还可以尝试在服务器上保存回调,并使用回调id作为tr元素的属性呈现其url,并使用dblclick处理程序跟踪该属性的链接,然后使用attr()提取查询中属性的值
我希望这对你有帮助 我忘了回答您最初的问题:您不能从javascript发出调用。但是,您可以使用document.location技巧,使用我在第一个答案中描述的技术,重新/滥用指向页面上回调的现有链接 我忘了回答您最初的问题:您不能从javascript发出调用。但是,您可以使用document.location技巧,使用我在第一个答案中描述的技术,重新/滥用指向页面上回调的现有链接 为什么您的TR不能包含锚定?Html不允许整个表行包含一个锚定,只有
td
s可以包含锚定。为什么您的TR不能包含锚定?Html不允许整个表行包含一个锚定,只有td
s可以包含锚定。这种方法对我有效。谢谢此外,我将锚设置为没有文本装饰,并更改了其字体,使其看起来不像锚。这种方法对我很有效。谢谢此外,我将锚设置为没有文本装饰,并更改了其字体,使其看起来不像锚。