我遇到了查询和绑定方面的一些问题。
在我的_Layout中我得到了页面底部的jquery,它得到了.on('click')
获得了一个获得“添加项目”链接的partialView,当我点击它时会生成一个$.post()
,返回一个parialview并在div容器中填充它。
下次当我尝试通过点击同一链接添加另一个项目时,它就像一个链接并刷新了网站,就像丢失了绑定到jquery一样。如果我选择将jquery放在部分渲染它的每一次工作,但为了结构我不想在页面中间有jquery脚本。
为什么这样,我该怎么办?
修改
这是我得到的绑定。它就像以前一样。
$('.menu-day').on('click', 'a.addItem', function (e) {
e.preventDefault();
console.log('ok');
addRow($(this).attr('id'));
});
答案 0 :(得分:2)
使用$()。on('click',function(){...})与传统的.click()绑定非常相似,因为元素必须存在于之前>你绑定它。例如:
$("ul li").on('click', function() { ... })
因此,这不适用于动态添加的列表元素。你可以做的是在点击内部指定一个选择器,它将监听冒泡到上下文的事件。例如:
$("ul").on('click', 'li', function() { ... });
现在点击列表项将会触发,无论它们何时被添加,因为它是绑定的容器列表,只是在侦听特定的eventTarget。
答案 1 :(得分:0)
您可以使用delegate()方法绑定Dom中存在的事件以及将来添加的元素。完成此link