jQuery单击不触发div中的标签

时间:2013-01-29 11:45:13

标签: jquery html click label children

我有以下html代码:

    <input type="text" size="30" id="county" class="auto_input" autocomplete="off" />
    <div id="l_county" class="autocomplete"></div>

以及jQuery从API获取数据(它是一个地址自动完成表单) 当您在文本字段中写入内容时,文本字段下方会出现一个县/街道/城市/ zipcodes列表(取决于文本字段),html如下所示:

    <div id="l_county" class="autocomplete" style="display: block;">
    <label id="s_county" class="suggestion">
    Värmland
    </label>
    <label id="s_county" class="suggestion">
    Västerbotten
    </label>
    </div>

我无法让jQuery在标签上触发点击事件。 我试过了;

    $('.suggestion').on('click', ...
    $('.autocomplete').children().on('click', ...
    $('.autocomplete > label').on('click', ....

还有一些我不记得了。什么都行不通。但

    $('.autocomplete').on('click', ...

效果很好,但这并没有多大帮助,因为我需要来自s的数据。我迫不及待地寻求帮助,因为另一部分的复杂问题,我已经过了最后期限,这个荒谬的问题让我无法前进。

修改 我发现了这个问题。我这是一个荒谬的想念。

    $('body').on('click', '.suggestion', function() {});

有效。问题是标签是通过.append()动态生成的 那是浪费你的时间。我道歉,谢谢你,这确实间接让我弄清楚了。

3 个答案:

答案 0 :(得分:0)

您可以查看自动完成API,并搜索将子项添加到框中的方法。在那里你实现了onClick-Listener。 但是我自己也遇到了类似的问题,我找到了解决办法。我会找到并发布在这里;)

答案 1 :(得分:0)

尝试下面的标签点击事件....它会帮助你..

$("[id=s_county]").live('click', function () {
      alert(this.innerHTML);
  });

小提琴链接:http://jsfiddle.net/RYh7U/50/

答案 2 :(得分:0)

  

您可能会在创建元素之前尝试获取元素。使用:$(document).ready(function(){ $('.suggestion').on('click', ...); $('.autocomplete').children().on('click', ...); $('.autocomplete > label').on('click', ...); });