我使用$ .getJSON添加了带有class =“divhide”的DOM元素。
现在我有很多div与class =“title”并且我添加了事件,但这不起作用:
$('.title').on("click",'div.divhide' , function () {
var description = $(this).find('.divhide')
description.slideToggle();
})
我还在getJSON中添加了class =“title”。
答案 0 :(得分:0)
如果在添加点击处理程序后通过.title
添加getJSON
元素,则处理程序将不会附加到新元素。
应用处理程序时,元素必须存在。这就是我们使用委托的原因。换句话说,将处理程序附加到将始终存在的父元素,或者至少在应用处理程序代码时存在:
$('body').on("click",'div.divhide' , function () {
var description = $(this).find('.divhide')
description.slideToggle();
})
这是一个极端的例子(可能并不明智),因为您可能不想过滤页面上的所有点击。但是,由于正文将始终存在,它将处理每次点击并过滤以查看初始点击是否在div.divhide
上。
而不是body
,找到.title
div的父级,这些div不会被getJSON
调用修改,并且在您应用处理程序时存在。