我有一个元素,我加载...
$("#pending").load("/pages/tipping/add-tips.php?pending=1&tip_comp=1");
每当选中一个单选按钮时,都会重新加载......
$(".comp_id").on("click",function(){
var compID=$(this).val();
$("#pending").load("/pages/tipping/add-tips.php?pending=1&tip_comp="+compID);
});
在这个加载的内容中是输入,点击链接后我循环浏览这些输入......
$("#submit").click(function(){
$("input.stake").each(function(){
alert("TEST");
});
});
但是,每次重新加载内容时,它似乎都“记住”以前的加载。例如,假设有一个输入循环,在第一次加载页面时,我得到1个警报。
如果我然后更改输入,然后提交,我会收到2个警报,然后是3个等等。尽管实际上只有一个输入在那里。
造成这种情况的原因是什么?解决方案是什么?它让我有点疯狂。
编辑:
因此,如果我循环通过文件外部的输入,它知道只有1.只有当循环从加载的内容中完成时,它才会认为有超过1个。
由于
答案 0 :(得分:0)
.load
只是向目标元素添加内容。如果要替换它,可以使用.get
:
$.get("/pages/tipping/add-tips.php?pending=1&tip_comp="+compID, function(data) {
$("#pending").replaceWith(data);
});
答案 1 :(得分:0)
$(".comp_id").on("click",function(){
var compID=$(this).val();
$("input.stake").each(function(){
$(this).remove();
});
$("#pending").load("/pages/tipping/add-tips.php?pending=1&tip_comp="+compID);
});
每次点击都会执行此操作。一种解决方法可能是,删除现有输入并再次加载
document.caretRangeFromPoint