我正在使用标题中的复选框从DB创建手风琴。我已经看到解决方案解决了点击复选框而不使用click()函数激活手风琴的问题,但由于我是动态创建手风琴,click()函数将无效。我不知道如何解决动态生成的手风琴标题中单击复选框的问题。
问题是click事件会在on('click')有机会运行e.stopPropagation之前激活手风琴。
任何想法?
答案 0 :(得分:2)
问题是当您使用事件传播来注册事件处理程序时,它通常附加到body
或层次结构中高得多的某些元素。因此,当执行附加到手风琴标题的事件时,会导致折叠/展开标签。
由于您是动态创建复选框,因此解决方案是添加click事件处理程序,以防止在创建复选框后传播。
例如:
var chk = $('<input />', { type: 'checkbox'});
chk.click(function(e){
e.stopPropagation();
});
chk.appendTo(accordionHeader)