我最近一直在研究的 webapp 出现问题,这与 ajax 重新加载破坏 javascript 有关。
我有以下 Ajax 调用
$.ajax({
type: "POST",
url: "/sortByIngredient/",
data: JSON.stringify(
{
selectedIngredients: tempDict
}),
contentType: "application/json; charset=utf-8",
success: function(data){
var curList = $("#drinkList").contents();
console.log(curList);
$("#drinkList").empty()
$("#drinkList").append(data)
和以下 Html UL
<div id = "drinkList" class="d-list">
<ul>
<li id='someID'>some Item</li>
<li id='someID2'>some Item2</li>
</ul>
</div>
我还设置了一个 jQuery 回调来激活单击的列表项。在初始加载时,一切正常。一旦 ajax 调用发生,并将 #drinkList 的内容替换为另一个列表,格式相同。如果有人好奇,这里是 onClick 回调:
$("li").click(function()
{
window.currentDrink = $(this).attr("id");
console.log(window.currentDrink);
$.ajax({
url: "/getDrink/" + $(this).attr("id"),
type: "get",
success: function(data){
$("#ingDiv").html(data);
}
});
});
在我进行 Ajax 调用之后,列表会正确修改,但在那之后,似乎没有更多的 javascript 起作用。例如,当我单击列表项时不会调用console.log,并且正确的视图不会更新(#ingDiv,如上面的调用所示)
我是否通过 Ajax 更改 HTML 以某种方式破坏了 javascript?我错过了一些明显的东西吗?如果还不清楚,我不是网络开发人员。