.click()在div中无法正常运行

时间:2013-03-23 17:32:55

标签: jquery

我正在开发一个列出某些产品的网站。在页面上,我使用了jQuery分页来对结果进行分页。我为此目的使用了this脚本。

因此,所有产品详细信息都会显示在class="data"

内的<li></li>
<div class="content">
    <div id="loading"></div>
<div id="container">
       <div class="data"></div>
    <div class="pagination"></div>
</div>  

在这些产品中,我有链接,允许将产品添加到列表中。

<span class="addlist">
<a id="id_1249" class="m-btn" onclick="return false" href="http://index.php/action/add/">Add</a>
</span>

我创建了一个简单的函数来检查点击事件

$(".addlist").click(function() {
   alert("clicked."); 
 });

问题是当我点击添加链接时没有任何反应,并且没有提示消息。

经过长时间测试后,我注意到,当我在<a href="index.php" class="addlist">Visible Text</a>之外放置一个链接(<div id="container">)时,点击事件就完美了。但如果它放在<div id="container">内部则不起作用。我在jQuery函数中添加了$.noConflict();,但仍然没用。

有人可以告诉我这可能是什么问题吗?

4 个答案:

答案 0 :(得分:6)

由于您的addlist是动态添加的,因此您需要使用on()委托事件。

$("#container").on('click',".addlist",(function(e) {
    e.preventDefault();
    alert("clicked."); 
 });

link详细了解on()委托事件

答案 1 :(得分:2)

我觉得你太快就回归了。

尝试做:

HTML

<span class="addlist">
<a id="id_1249" class="m-btn" href="http://index.php/action/add/">Add</a>
</span>

JS

$(".addlist").click(function(event) {
   event.preventDefault();
   alert("clicked."); 
 });

答案 2 :(得分:1)

尝试

$('#parent').on('click', '.addlist', function() {
   alert("clicked."); 
});

文件准备就绪中可能不存在这些元素。

答案 3 :(得分:1)

这可能是因为您在锚点上有return false作为点击处理程序。删除它,它应该工作。