2

我正在从带有标题中的复选框的数据库中创建手风琴。我已经看到了解决单击复选框而不使用 click() 函数激活手风琴的问题的解决方案,但是由于我是动态创建手风琴,所以 click() 函数将不起作用。我不知道如何解决在动态生成的手风琴标题中单击复选框的问题。

问题是点击事件在 on('click') 有机会运行 e.stopPropagation 之前激活手风琴。

有任何想法吗?

4

1 回答 1

2

问题是当您使用事件传播来注册事件处理程序时,它通常附加到body层次结构中更高级别的元素或某些元素。因此,到时附加到手风琴标题的事件将被执行,从而导致折叠/展开选项卡。

由于您正在动态创建复选框,因此解决方案是添加单击事件处理程序,以防止在创建复选框后传播到该复选框。

前任:

var chk = $('<input />', { type: 'checkbox'});
chk.click(function(e){
    e.stopPropagation();
});
chk.appendTo(accordionHeader)
于 2013-07-16T03:14:42.033 回答