我正在开发一个列出某些产品的网站。在页面上,我使用了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();
,但仍然没用。
有人可以告诉我这可能是什么问题吗?
答案 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
作为点击处理程序。删除它,它应该工作。