我有下一个脚本,“/ cashflow / arrow /”调用django视图来获取数据并使用它。然后它返回在html中加载的数据。
该脚本在第一次单击时工作正常,但是当我想再次单击链接时,没有任何反应。
<script>
$(document).ready(function(){
var prev_months = {{ prev_months }}
var next_months = {{ meses_desp }}
function arrow(meses_ant, next_months) {
$.get("/cashflow/arrow/", { prev_months: prev_months, next_months: next_months},
function(data){
$("#cash_grid").html(data);
});
}
$("#dates_up").click( function() {
if (prev_months > 0) {
prev_months = prev_months - 1;
}
next_months = next_months + 1;
arrow(prev_months, next_months);
});
$("#dates_down").click( function() {
prev_months = prev_months + 1;
if (next_months > 0) {
next_months = next_months - 1;
}
arrow(prev_months, next_months);
});
})
答案 0 :(得分:2)
尝试使用.live("click", function() {...});
代替点击事件。
例如:
$("#dates_up").live("click", function()...
$("#dates_down").live("click", function()...
您可以阅读更多相关信息here
答案 1 :(得分:1)
您输入的HTML是否包含具有ID #dates_up
和#dates_down
的新元素的新版本?那就是问:他们住在#cash_grid
内吗?
如果是这样,那么当您更新HTML时,您在document.ready
中绑定的点击事件将丢失,因此您必须重新绑定这些点击事件。
最简单的方法是将click()绑定代码放在一个单独的函数中,在document.ready()中调用它来设置绑定,然后在AJAX get()回调中调用它来设置新绑定已返回的新元素