我想将click事件绑定到xpages类型中的li元素

I want to bind the click event to the li elements in the xpages type-ahead

本文关键字:类型 li 元素 xpages click 事件 绑定      更新时间:2023-09-26

我使用的是Tim Tripconys的高级类型先行解决方案,它运行良好。http://www.timtripcony.com/blog.nsf/d6plinks/TTRY-7XD5P9

但我希望它的行为有所不同,我不想用所选下拉条目中的值填充编辑框,而是想在所选条目中附加一个单击事件,并将用户重定向到所选文档。

这意味着我需要覆盖当前的点击事件,并向我的点击事件发送一个隐藏的"unid",并用javascript进行重定向。

我尝试在SSJS函数中为ul和li元素添加一个类,以便将它们绑定到click事件。但这似乎并不适用。我不确定应该如何附加点击事件,因为在typeahead"ajax"控件上没有事件处理程序。

这就是我试图做的

  1. 用户在编辑框中输入字符
  2. xpages Typeahead以下拉列表的形式返回结果
  3. 返回的每个文档的unid都需要隐藏在下拉列表中
  4. 单击其中一个下拉条目将重定向到另一个页面,该页面显示用户基于隐藏的unid单击的文档

顺便说一句。我知道如何绑定一个事件,所以我不需要对此进行进一步的解释,但我需要知道如何结合xpages中的类型先行特性来进行绑定。

以下是从下拉生成的html元素的示例

<ul class="dijitReset dijitMenu dijitComboBoxMenu" dojoattachevent="onmousedown:_onMouseDown,onmouseup:_onMouseUp,onmouseover:_onMouseOver,onm>ouseout:_onMouseOut" style="top: 0px; overflow-x: hidden; overflow-y: hidden; width: 310px; visibility: visible; " id="home:_id1:_id19:_id29:search_popup" dir="" widgetid="home:_id1:_id19:_id29:search_popup">
<li class="dijitReset dijitMenuItem" role="option" id="home:_id1:_id19:_id29:search_popup1">
<table>
<tbody>
<tr>
<td><img src=""></td><td valign="top"><p><strong>Entry1</strong></p>
<p>
<span class="informal">TADN-8CWLTP<br>2012-03-01 09:29:07 CET<br>Test</span>
</p>
</td>
</tr>
</tbody>
</table>
</li>

<li class="dijitMenuItem dijitMenuNextButton" dojoattachpoint="nextButton" role="option" style="display: none; " id="home:_id1:_id19:_id29:search_popup_next">More choices</li>
</ul>

谢谢Thomas

看起来我自己解决了,请参阅下面的

首先,我在下拉中的表中添加了一个类和unid

<li><table id='"" + unid + "'" class='"clicktable'">....</li></code>

其次,在onclick事件中,我使用jquery live()将表绑定到click函数

$(".clicktable").live("click", function(){
  alert($(this).attr("id"))
});

因此,当用户单击下拉条目时,会单击表而不是li,然后我可以简单地编写代码来重定向用户,因为我知道单击了哪个unid。

修改响应字符串以将"Entry1|TADN-8CWLTP"返回到字段。

  • 将onChange事件添加到…的字段中
  • 将字段值和名称传递给函数
  • 解析字段值-将Entry1返回给用户(用于可视化)
  • 记下您要查找的文档的笔记ID和位置.href