我有以下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()动态生成的 那是浪费你的时间。我道歉,谢谢你,这确实间接让我弄清楚了。
答案 0 :(得分:0)
您可以查看自动完成API,并搜索将子项添加到框中的方法。在那里你实现了onClick-Listener。 但是我自己也遇到了类似的问题,我找到了解决办法。我会找到并发布在这里;)
答案 1 :(得分:0)
尝试下面的标签点击事件....它会帮助你..
$("[id=s_county]").live('click', function () {
alert(this.innerHTML);
});
答案 2 :(得分:0)
您可能会在创建元素之前尝试获取元素。使用:
$(document).ready(function(){ $('.suggestion').on('click', ...); $('.autocomplete').children().on('click', ...); $('.autocomplete > label').on('click', ...); });