Я хочу связать событие click с элементами li в xpages type-forward - PullRequest
2 голосов
/ 05 марта 2012

Я использую причудливое решение Tim Tripconys для ввода текста, и оно работает нормально.http://www.timtripcony.com/blog.nsf/d6plinks/TTRY-7XD5P9

Но я хочу, чтобы он вел себя немного иначе, вместо того, чтобы заполнять поле редактирования значением из выбранной раскрывающейся записи, я хочу прикрепить событие щелчка к выбранной записи и перенаправить пользователя к выбраннойdocument.

это означает, что мне нужно переопределить текущее событие click и отправить скрытый «unid» в мое событие click и выполнить перенаправление в javascript.

Я попытался добавить класск элементам ul и li в моей функции SSJS, чтобы я мог связать их с событием click.но это, кажется, не применяется.и я не уверен, как мне прикрепить событие click, поскольку в элементе управления ajax typeahead нет обработчика событий.

Это то, что я пытаюсь сделать

  1. Пользователь входитсимволы в поле ввода
  2. Typeagehead xpages возвращает результаты в виде раскрывающегося списка
  3. unid каждого возвращаемого документа должен быть скрыт в раскрывающемся списке
  4. , щелкнув один из раскрывающихся списковЗаписи будут перенаправлены на другую страницу с документом, по которому пользователь щелкнул, на основе скрытого unid.

btw.Я знаю, как связать событие, поэтому мне не нужно больше объяснять это, но мне нужно знать, как это сделать в связи с функцией опережающего ввода в 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>

Спасибо Томас

Ответы [ 2 ]

3 голосов
/ 05 марта 2012

Похоже, я решил сам, см. Ниже

Сначала я добавил класс и unid к таблице в раскрывающемся списке

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

Во-вторых, в событии onclick я связываю таблицу с функцией click, используя jquery live ()

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

поэтому, когда пользователь щелкает раскрывающуюся запись, щелкает таблица, а не li, и я могу легко написать код для перенаправления пользователя, поскольку я знаю, какой unid был выбран.

1 голос
/ 05 марта 2012

Измените строку ответа, чтобы она возвращала «Entry1 | TADN-8CWLTP» обратно в поле.

  • Добавить событие onChange в поле, которое ....
  • Передает значение поля и имя функции
  • Разобрать значение поля - вернуть Entry1 пользователю (для визуального)
  • Скопируйте идентификатор заметки и location.href в нужный документ.
...