2013-05-03 121 views
0

我在我的网页上有一个列表。当有人点击列表项目时,应执行一些JavaScript。例如警报。我得到一个几乎空白页这方面的工作,例如看到这个代码:jQuery onclick没有被触发

<ul class="uniquelist"> 
     <li id="1">clickable 1</li> 
     <li id="2">clickable 2</li> 
     <li id="3">clickable 3</li> 
     <li id="4">clickable 4</li> 
     <li id="5">clickable 5</li> 
    </ul> 

    $(document).ready(function(){ 
    $('.uniquelist li').click(function(){ 
     var id = $(this).attr('id'); 
     alert(id); 
    }); 
    }); 

http://jsfiddle.net/6Wafk/1/

如果我把这段代码中有很多更多的代码我的“完整”的网页,这是行不通的了。在这里发布所有的代码是有点多,所以我希望有人有我需要看的地方的一些线索。

该列表的类别是非常独特的,没有其他具有相同类别的元素。

编辑: 该页面在页面加载后加载。这是我的自动完成的输出!

+1

也许你正在加载页面后添加列表? – MMeersseman 2013-05-03 10:33:50

+0

你有错误信息吗?具有相同类别的其他元素不应该破坏此代码。 – 2013-05-03 10:38:59

+1

你说过,'如果我把这段代码放到我的“完整”网页中,代码多得多,它就不再工作了。所以,基本上你会向我们展示**作品**的部分,而不是实际的作品?即**线索**?请注意您应如何命名您的ID:http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier – 2013-05-03 10:41:43

回答

1

如果你的页面加载后加入列表中,您需要使用on()

$(document).ready(function(){ 
    $('body').on('click', '.uniquelist li', function(){ 
    var id = $(this).attr('id'); 
    alert(id); 
    }); 
}); 

body任何方兴未艾的选择也许交换本网页上加载时 - 你选择的选择越近,越少的DOM遍历jQuery将不得不这样做。

+0

我找到了我的答案,只是在答案出现的时候写下来!所以我会将你的答案标记为答案! TNX! – Timo002 2013-05-03 11:22:15