我有一个<ul>
元素,可动态生成<li>
个元素,只想运行onclick
个事件
<ul id="results">
<li class="device_result searchterm" data-url="apple-iphone-5s">
<a href="#"> Apple iPhone 5s </a>
</li>
<li class="device_result searchterm" data-url="apple-iphone-5c">
<a href="#"> Apple iPhone 5s </a>
</li>
</ul>
我在$(document).ready
块中有以下jQuery,但它似乎没有用 - 任何想法我做错了什么?
$("li .searchterm").click(function() {
console.log("testing");
});
答案 0 :(得分:16)
如果你动态添加点击列表但选择项目:
$("#results").on("click", ".searchterm", function(event){
console.log('clicked');
});
答案 1 :(得分:11)
删除选择器
中的空格 $("li.searchterm").click(function() {
console.log('testing');
});
并且您还可以使用.on
将特定事件附加到匹配的元素
$("li.searchterm").on("click",function() {
console.log('testing');
});
答案 2 :(得分:4)
使用.on()
由于您的内容是动态添加的,因此无法直接访问,因此您必须使用事件委派。
$('#results').on('click','li.searchterm',function() {
console.log('testing');
});
答案 3 :(得分:2)
要么
$( "li .searchterm" ).on('click', function() {
console.log('testing');
});
OR
<li class="device_result searchterm" data-url="apple-iphone-5s" onclick="clickFunc(1)">
<a href="#">Apple iPhone 5s</a>
</li>
<li class="device_result searchterm" data-url="apple-iphone-5c" onclick="clickFunc(2)">
<a href="#">Apple iPhone 5s</a>
</li>
和Javascrip
function clickFunc(id) {
console.log('Do something with ' + id);
}
答案 4 :(得分:1)
$( "li.searchterm" ).on('click',function() {
console.log('testing');
});
答案 5 :(得分:0)
您可以在不将ID分配给ul
的情况下执行此操作$('ul').on('click','li.searchterm',function(){
//do your stuffhere;
});