$('.collapse').each(function() {
var title= $(this).siblings('.accordion-heading').find('a');
$(this).on('show hide', function (e) {
if(!$(this).is(e.target))return;
title.parent().toggleClass('active', 300);
title.parent().hasClass('active') ? $('input.party').prop('value', '') : $('input.party').val(title.siblings('.delete').prop('id'));
var id = title.siblings('.delete').prop('id');
var data = {id: id};
$.post("times.php", data, function(result) {
if(title.parent().hasClass('active')){
$('.times').html('');
} else {
$('.times').html($.parseJSON(result));
}
})
})
})
所以我通过添加一个新的派对在我的html中添加了一个新的手风琴组,我也不想将这一切用于新添加的元素。我没有找到可以帮助我的主题,因为它比任何随机each
函数更具体(我认为)。
这个未来的元素对我来说是新的,所以我很感激一些解释或一个很好的链接到我已经检查过的jquery网站的其他地方。
谢谢你的时间!
基本上我想要做的就是用$(this).on('show hide', function (e) {
替换$(document).on('show hide', $(this), function (e) {
。我刚刚写的内容不起作用。
答案 0 :(得分:1)
这将适用于任何匹配选择器的新对象
jQuery(document).on('show hide', '.accordion-heading a', function(event){
...
});
答案 1 :(得分:1)
如果只是关于事件处理程序,那么您也可以使用event delegation来捕获动态创建的元素上的事件。
没有必要在这里使用.each
,所以只需省略它:
$(document.body).on('show hide', '.collapse', function() {
var title = $(this).siblings('.accordion-heading').find('a');
if(!$(this).is(e.target))return;
// rest of the code...
});