Jquery折叠忽略内部标题标记

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

我使用的是daniel stock,标题中的内部标记有问题

演示运行得很好,但当我在标题中添加任何标记(强标记)时,expand/collapse事件永远不会触发

<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();
}