Javascript 动态添加的Gridster小部件可以';关不上
我添加了一个带有关闭按钮的动态gridster小部件Javascript 动态添加的Gridster小部件可以';关不上,javascript,html,jsp,gridster,Javascript,Html,Jsp,Gridster,我添加了一个带有关闭按钮的动态gridster小部件 gridster.add_widget('<li id="wdg_news" data-row="3" data-col="5" data-sizex="2" data-sizey="3" class="tile-orange" data-ng-hide="!news.length"> <div class="db-wid"><div class="db-title"> Newss <a href="
gridster.add_widget('<li id="wdg_news" data-row="3" data-col="5" data-sizex="2" data-sizey="3" class="tile-orange" data-ng-hide="!news.length"> <div class="db-wid"><div class="db-title"> Newss <a href="#" class="db-ctrl"><i class="icon-close"></i></a></div><div class="db-content cus_scroll" style="height:304px;"> <div class="w-list"> <c:forEach items="${newsList}" var="news"><div><a href="/news/{{ne.id}}" class="w-font-s f-white">${news.date} - ${news.summery}</a></div></c:forEach></div></div></div> </li>', 2, 3);
这不会发生在已经创建的小部件上。仅适用于使用gridster.add_widget
方法动态创建的小部件
请帮忙处理这件事。提前感谢….您需要做的不是
。在(“单击”)
上,您需要使用。委派(“单击”)
侦听DOM中已存在的元素。侦听DOM中已经存在并在将来添加的元素(例如,动态添加小部件时)
所以你只需要修改你的点击处理程序
$(".gridster").delegate("click", ".db-ctrl", function(e) {
e.preventDefault();
var parentLi = $(this).parents("li");
var eq_val = $(".gridster ul li").index(parentLi);
gridster.remove_widget($('.gridster li').eq(eq_val));
console.log(eq_val);
saveGrid();
})
$(".gridster").delegate("click", ".db-ctrl", function(e) {
e.preventDefault();
var parentLi = $(this).parents("li");
var eq_val = $(".gridster ul li").index(parentLi);
gridster.remove_widget($('.gridster li').eq(eq_val));
console.log(eq_val);
saveGrid();
})