手风琴div打开后,我正在尝试做某事,但是手风琴打开后,“显示”或“显示”事件没有触发

$(document).on('show shown shown hide hidden', '.accordion-field', function(){
    console.log('got it');
});


注意:手风琴场是在处理通过ajax传入的json后动态生成的。

任何人都知道为什么这不起作用。

编辑:

添加静态div(不是通过代码创建,而是写在html上)后,我意识到该事件触发了。

$(document).on('show shown hide hidden', '#xdiv81', function(){
    console.log('got it');
} );


如何为动态生成的div做同样的事情

最佳答案

正如Vizkos提到的那样,问题在于在生成元素之前,我将div绑定到了“显示”和“隐藏”事件。

解决的办法是在生成后移动出价。

generateDivs();
$(document).on('show shown hide hidden', '#xdiv81', function(){
    console.log('got it');
} );


要么

generateDivs();
$('#xdiv81').on('show shown hide hidden', function(){
    console.log('got it');
}


后者效率更高。

09-08 11:29