2

我正在为 JQuery 寻找一个通用的“行选择器”。

我们都见过很酷的“选择器”工具,例如日期选择器、颜色选择器、时间选择器等,您可以在其中单击文本框,然后会出现一个小日历或色板或时钟或其他东西。您选择一些东西(如日期),然后用一个值填充文本框。

我真的需要一个通用的“行选择器”,您可以在其中使用一些数据行(例如时区列表)填充某些内容(表格、div 等)。这将链接到一个文本字段,并在用户单击该字段时弹出。

他们会点击一行(比如一个时区),然后时区 ID 将被传回该字段。

有人知道这样做的吗?

谢谢!

4

4 回答 4

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>

这会为每一行添加一个点击,在该行中找到标记的 id,然后您可以使用它做一些事情。显然,您需要将其定位到您的数据表并根据内容进行过滤。然后可以使用 JQuery 将单击的结果填充到目标字段中。然后,您可以提出一些约定,使您的所有数据表都工作相同,这将允许您将其概括为您的应用程序的通用选择器。

于 2008-10-14T01:26:00.117 回答
2

在这种情况下,最好使用事件委托。因此,将事件处理程序放在表本身上,这样可以避免必须为每一行绑定一个处理程序,如果你有几行的话,这会非常昂贵。然后,您可以使用 event.target 来查询哪个元素负责该事件并从那里开始。

更多信息在这里

例如

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

});
于 2008-10-14T08:21:06.787 回答
1

这不是您所要求的,但它可能是您正在寻找的:Any+Time(TM) Datepicker/Timepicker AJAX Widget with Time Zone Support可以在时间选择器中显示时区列表,使用户可以轻松选择合适的时区。它也很容易定制,并且比大多数其他使用下拉或滑块的时间选择器允许更快的选择。我希望这有帮助!

于 2010-04-24T14:03:53.857 回答
0

我知道我迟到了一年,而且我可能在这里遗漏了一些东西,但是带有属性的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。

于 2010-04-24T14:10:31.170 回答