Typo3 类型3:禁用一个链接

Typo3 类型3:禁用一个链接,typo3,typoscript,Typo3,Typoscript,我有两级菜单。所有链接都可以点击,但我想禁用1个链接。此链接用于打开子菜单 <li class="sub-link"><a href="#">link1</a> <ul id="sub-menu"> <li><a href="#">sublink</a></li> <li><a href

我有两级菜单。所有链接都可以点击,但我想禁用1个链接。此链接用于打开子菜单

         <li class="sub-link"><a href="#">link1</a>
            <ul id="sub-menu">
              <li><a href="#">sublink</a></li>
              <li><a href="#">sublink2</a></li>
            </ul> <!-- sub-menu -->
          </li>
          <li><a href="#">link2</a></li>
          <li><a href="#">link3</a></li>
          <li><a href="#">link4</a></li>
          <li><a href="#">link5</a></li>
  • 我想禁用链接1。我有这样的字体:

    lib.menu.main  = HMENU
    lib.menu.main {
        special = list
        special.value =  22,154,88
        alwaysActivePIDlist = 22
        1 = TMENU
        1.NO = 1          
        1.wrap = <ul>|</ul>
        1.NO.wrapItemAndSub = <li>|</li>
        1.IFSUB=1
        1.IFSUB.wrapItemAndSub = <li class="sub-link">|</li>
        2 < .1
        2.wrap = <ul id="sub-menu">|</ul>
        2.NO.wrapItemAndSub = <li>|</li>
    }
    
    lib.menu.main=humenu
    lib.menu.main{
    特殊=列表
    特殊值=22154,88
    alwaysActivePIDlist=22
    1=t菜单
    1.NO=1
    1.wrap=
      |
    1.NO.wrapItemAndSub=
  • |
  • 1.IFSUB=1 1.IFSUB.wrapItemAndSub=
  • |
  • 2 < .1 2.wrap=
      2.NO.wrapItemAndSub=
    • |
    • }

      我怎样才能决定这个问题呢?

      所以我有两种可能让你解决这个问题:

      第一个是阅读Typo3文档并查找“optionSplit”和“doNotLinkIt”-选项。他们应该帮助你解决打字稿中的问题

      另一个是使用Javascript/JQuery解决它。您可以选择(在上面的示例中)菜单的第一项,并用您想要的任何内容替换链接

      $(document).ready(function(){
          $('.menu a').first().attr('href', '#');
      });
      
      我让你把整个例子弄得一团糟:


      请确保不要在HTML模板中插入Javascript,因为它在使用其他HTML模板的页面上不可用。 只需执行一个js文件,然后通过打字脚本将其插入,如下所示:

      page.includeJS.file1 = fileadmin/yourTemplateLocation/yourFile.js
      

      我希望我提到的两种解决方案中的一种能够帮助您

      因此我为您提供了两种解决此问题的可能性:

      第一个是阅读Typo3文档并查找“optionSplit”和“doNotLinkIt”-选项。他们应该帮助你解决打字稿中的问题

      另一个是使用Javascript/JQuery解决它。您可以选择(在上面的示例中)菜单的第一项,并用您想要的任何内容替换链接

      $(document).ready(function(){
          $('.menu a').first().attr('href', '#');
      });
      
      我让你把整个例子弄得一团糟:


      请确保不要在HTML模板中插入Javascript,因为它在使用其他HTML模板的页面上不可用。 只需执行一个js文件,然后通过打字脚本将其插入,如下所示:

      page.includeJS.file1 = fileadmin/yourTemplateLocation/yourFile.js
      
      我希望我提到的两种解决方案中的一种能够帮助您从打字脚本的菜单中排除特定的PID(18):

      lib.menu = HMENU
      lib.menu {
          special = rootline
          special.range = 2,0
          1 = TMENU
          1 {
              NO {
                  allWrap = <li> | </li>
                  doNotLinkIt.override = 1
                  doNotLinkIt.override.if {
                      value = 18
                      equals.field = uid
                  }
              }
          }
      }    
      
      从Typoscript中的菜单中排除特定PID(18):

      lib.menu = HMENU
      lib.menu {
          special = rootline
          special.range = 2,0
          1 = TMENU
          1 {
              NO {
                  allWrap = <li> | </li>
                  doNotLinkIt.override = 1
                  doNotLinkIt.override.if {
                      value = 18
                      equals.field = uid
                  }
              }
          }
      }    
      

      你想禁用它是什么意思?它应该只打开子菜单而不链接到页面?是的,如果您悬停链接,子菜单应该显示,但如果您单击“按链接”,则不需要执行操作。您想禁用它是什么意思?它应该只打开子菜单而不链接到页面?是的,如果您悬停链接,子菜单应该显示,但如果您单击“按链接”,则不需要执行操作。与标记为答案的解决方案相比,这是更好的解决方案。尽管这三个方案最终都能奏效,但更好的解决方案还是比答案更好。尽管这三个方案最终都能奏效。