Jquery折叠忽略内部标题标记
我使用的是daniel stock,标题中的内部标记有问题 演示运行得很好,但当我在标题中添加任何标记(强标记)时,expand/collapse事件永远不会触发Jquery折叠忽略内部标题标记,jquery,collapse,Jquery,Collapse,我使用的是daniel stock,标题中的内部标记有问题 演示运行得很好,但当我在标题中添加任何标记(强标记)时,expand/collapse事件永远不会触发 <h3 class="active"><strong>Fruits</strong> Test</h3> <ul> <li>Apple</li> <li>Pear</li> <li>Ora
<h3 class="active"><strong>Fruits</strong> Test</h3>
<ul>
<li>Apple</li>
<li>Pear</li>
<li>Orange</li>
</ul>
请看这里的示例
问题在于jquery.collapse.js处理选择器的方式。每当触发一个click事件时,它只查看父级,看看它是否有一个head:{}选择器。修改使用最近的(),这将导致它冒泡,直到它找到具有head selector的内容
if(!t.is(op.head)) {
if ( t.closest(op.head) ) {
t = t.closest(op.head);
}
else {
return;
}
e.preventDefault();
}
我对上述答案有一个问题,因为它禁用了可折叠/可扩展区域内的链接。我的解决方案与此类似:
if(!t.is(op.head)) {
// What about link inside header.
z = t.parent();
if ( t.parent().is(op.head)) {
t = t.parent();
} else if ( z.parent().is(op.head)) {
t = z.parent();
} else {
return;
}
e.preventDefault();
}
if(!t.is(op.head)) {
// What about link inside header.
z = t.parent();
if ( t.parent().is(op.head)) {
t = t.parent();
} else if ( z.parent().is(op.head)) {
t = z.parent();
} else {
return;
}
e.preventDefault();
}