JQuery Любое средство выбора строк

Я ищу универсальный "выбор строк" для JQuery.

Мы все видели классные инструменты «Выбор», такие как средства выбора даты, средства выбора цвета, средства выбора времени и т. Д., Когда вы щелкаете текстовое поле, и появляется небольшой календарь, цветовая гамма, часы или что-то еще. Вы выбираете что-то (например, дату), а затем текстовое поле заполняется значением.

Мне действительно нужен универсальный «выборщик строк», в котором вы можете заполнить что-то (таблицу, div и т. д.) некоторыми строками данных (скажем, списком часовых поясов). Это будет связано с текстовым полем и будет всплывать, когда пользователь щелкает в поле.

Они щелкали строку (скажем, часовой пояс), и идентификатор часового пояса возвращался в поле.

Кто-нибудь знает что-нибудь, что делает это?

Спасибо!


person Eli    schedule 14.10.2008    source источник


Ответы (4)


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

<script type="text/javascript"> $(function() {
        $('table#data_table tr').click(function() {
              alert($(this).find('td.id').html());
          }); }); 
</script>


<table border="0" id="data_table">
<tr>
<td class="id">45</td><td>GMT</td>
</tr>
<tr>
<td class="id">47</td><td>CST</td>
</tr>
</table>

Это добавляет щелчок к каждой строке, находит помеченный идентификатор в строке, который затем позволяет вам что-то с ним делать. Очевидно, вам нужно будет нацелить это на свою таблицу данных и отфильтровать на основе содержимого. Затем можно использовать JQuery для заполнения результата клика в целевом поле. Затем вы можете придумать какое-то соглашение, в котором все ваши таблицы данных работают одинаково, что позволит вам обобщить это в общий сборщик для вашего приложения.

person Duncan    schedule 14.10.2008

В этом случае лучше использовать делегирование событий. Поэтому поместите обработчик событий в саму таблицу, чтобы избежать необходимости связывать обработчик для каждой строки, что довольно дорого, если у вас есть несколько хороших строк. Затем вы можете использовать event.target, чтобы запросить, какой элемент был ответственен за событие, и перейти оттуда.

Подробнее здесь

E.g

$('#someTable').click(function(e) {
  var target = $(e.target);

});
person redsquare    schedule 14.10.2008

Это не совсем то, что вы просили, но это может быть то, что вы ищете: AJAX-виджет Any+Time(TM) Datepicker/Timepicker с поддержкой часовых поясов может отображать список часовых поясов прямо в средстве выбора времени, упрощая пользователю выбор соответствующий часовой пояс. Его также легко настроить, и он обеспечивает более быстрый выбор, чем большинство других средств выбора времени, использующих раскрывающиеся списки или ползунки. Надеюсь, это поможет!

person Andrew M. Andrews III    schedule 24.04.2010
comment
Эй, это довольно хороший выбор даты. Я должен буду помнить это в следующий раз, когда он мне понадобится. - person Eli; 25.04.2010

Я знаю, что опоздал на год и, вероятно, что-то здесь упускаю, но что не так с элементом select с атрибутом size?

<select name="test" size="5">
  <option value="1">One</option>
  <option value="2">Two</option>
  <option value="3">Three</option>
  <option value="4">Four</option>
  <option value="5">Five</option>
</select>

Это покажет все 5 вариантов и позволит пользователю выбрать один. Он также не имеет абсолютно никакой зависимости от Javascript, если просто используется в стандартной форме, но также может хорошо обрабатывать типичные события Javascript, а также, похоже, создает именно тот внешний вид, который вы хотели - не говоря уже о том, что, как всегда, вы можете использовать CSS для стилизации это как вам нравится.

Когда стандартный HTML будет работать, я скажу: используйте стандартный HTML.

person Matchu    schedule 24.04.2010
comment
Я думаю, что вы, возможно, неправильно поняли вопрос. Поиск (был выполнен с этим в течение года или около того) для виджета, который позволит вам заполнить поле из списка внестраничной базы данных в стиле средства выбора даты. - person Eli; 25.04.2010
comment
В конце концов я просто сделал свой собственный. - person Eli; 25.04.2010
comment
<select> с размером по-прежнему кажется лучшим вариантом семантически, тем более что вы говорите о выборе, а не о таблице, как подразумевало бы <table>. Вы можете заполнить его тегами <option> через AJAX, если вам это действительно нужно, но я бы, вероятно, просто заполнил его при рендеринге, чтобы избежать этой зависимости (если вы уже не полностью AJAX-приложение). - person Matchu; 25.04.2010
comment
Конечно, раз уж все кончено... хех :P Но мне все еще кажется, что я понял вопрос. Я просто не согласен с тем, что стандартный тег для такого рода вещей не годится. - person Matchu; 25.04.2010
comment
Что вы можете сделать в пользовательском средстве выбора сущностей (которое будет отображаться как наложение на странице), что вы не можете сделать с фильтром select: и/или применить пейджинг и/или выполнить поиск в таблице базы данных с потенциально большим количеством строк, которые не будут управляемый в избранном... - person Pierre Henry; 07.08.2012