代码之家  ›  专栏  ›  技术社区  ›  Eli

jquery“任意行”选取器

  •  2
  • Eli  · 技术社区  · 16 年前

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

    我们都看到了一些很酷的“挑选”工具,比如日期选择工具、颜色选择工具、时间选择工具等,您可以点击文本框,然后弹出一个小日历、色觉、时钟等。您可以选择一些内容(如日期),然后用一个值填充文本框。

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

    他们会单击一行(比如时区),然后将时区ID传递回字段。

    有人知道这件事吗?

    谢谢!

    4 回复  |  直到 14 年前
        1
  •  4
  •   Duncan    16 年前

    我不知道什么是完全通用的,尽管在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将单击的结果填充到目标字段中。然后,您可以想出一些约定,其中所有数据表的工作方式都相同,这将允许您将其概括为应用程序的通用选择器。

        2
  •  2
  •   redsquare    16 年前

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

    更多信息 here

    例如

    $('#someTable').click(function(e) {
      var target = $(e.target);
    
    });
    
        3
  •  1
  •   Andrew M. Andrews III    14 年前

    这不是你想要的 因为,但可能是你 为: Any+Time(TM) Datepicker/Timepicker AJAX Widget with Time Zone Support 可以在时间选择器中显示时区列表,从而方便用户选择适当的时区。它也很容易定制,并允许比大多数其他时间选择下拉或滑块使用更快的选择。希望这有帮助!

        4
  •  0
  •   Matchu    14 年前

    我知道我迟到了一年,而且我可能错过了一些东西,但这有什么问题 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。