如何修复可点击的href标签?

时间:2019-01-26 09:01:50

标签: javascript php jquery html css

我有一个用于通知下拉框的html css代码,问题是我无法单击标签,而我尝试使用javaScript的同时也无法正常工作,我无法理解此问题,请告诉我如何使可点击标签。

  $('.toparea-right > .setting-area > li').on("click",function(){
	$(this).siblings().children('div').removeClass('active');
	$(this).children('div').addClass('active');
	return false;
  });
    
//------- remove class active on body
  $("body *").not('.toparea-right > .setting-area > li').on("click", function() {
	$(".toparea-right > .setting-area > li > div").removeClass('active');
      return true;
 });
.dropdowns {
        background: #FFF none repeat scroll 0 0;
        border: 1px solid #e1e8ed;
        list-style: outside none none;
        max-height: 294px;
        overflow: auto;
        padding-left: 0;
        position: absolute;
        right: -175px;
        text-align: left;
        top: 55px;
        width: 440px;
        opacity: 0;
        visibility: hidden;
        -webkit-transition: all 0.3s linear 0s;
        -moz-transition: all 0.3s linear 0s;
        transition: all 0.3s linear 0s;
    }
    
    .dropdowns.active{
        opacity: 1;
        visibility: visible;
    }
    
    .drops-menu {
        list-style: outside none none;
        padding-left: 0;
    }
    
    .drops-menu > li > a {
        border-bottom: 1px solid #e1e8ed;
        display: inline-block;
        padding: 5px;
        width: 100%;
    }
    
    .dropdowns > h6{
        font-size: 15px;
    }
    
    .drops-menu > li > .tag {
        color: #fff;
        display: inline-block;
        font-size: 11px;
        padding: 0 6px;
        position: absolute;
        right: 0;
        top: 0;
    }
    
    .drops-menu > li:nth-child(2n) > a {
        background: whitesmoke none repeat scroll 0 0;
    }
    
    .drops-menu > li a img {
        display: inline-block;
        vertical-align: middle;
        width: 10%;
        border-radius: 100%;
        margin-bottom: 10px;
        margin-left: 10px;
        height: 45px;
    }
    
    .mesg-meta {
        display: inline-block;
        padding-left: 30px;
        vertical-align: middle;
        width: -1%;
        color: #000000;
        padding-top: -21px;
        top: 18px;
        margin-top: 0px;
        line-height: 25px;
    }
    
    .mesg-meta > h6 {
        font-size: 13.5px;
        font-weight: 600;
        letter-spacing: 0.3px;
        margin-bottom: 0;
        text-transform: capitalize;
        margin-left: -15px;
    }
    
    .mesg-meta > span {
        color: #000000;
        display: inline-block;
        font-size: 12px;
        line-height: 15px;
        overflow-x: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        width: 100%;
    }
    
    .mesg-meta > i {
        color: #000000;
        font-size: 12px;
        font-style: normal;
        margin-left: -15px;
    }

    .drops-menu > li > a:hover {
        background: #fafafa none repeat scroll 0 0;
    }
    
    .dropdowns > span {
        border-bottom: 1px solid #ccc;
        display: inline-block;
        font-size: 14px;
        padding: 0px 10px;
        text-align: center;
        width: 100%;
        height: 59px;
        margin-top: 0px;
    }
    
    .dropdowns > a.more-mesg {
        display: inline-block;
        font-size: 14px;
        padding-bottom: 5px;
        text-align: center;
        text-transform: capitalize;
        width: 100%;
    }
    
    .blue{background: #337ab7;}
    .red{background: #ff0000;}
    .green{background: #33b7a0;}
    .dropdowns.active > a {
        background: #fafafa none repeat scroll 0 0;
        display: block;
        font-size: 13px;
        margin-bottom: 2px;
        padding: 0px 0px;
        text-align: center;
    }
    
    .dropdowns.active > a i {
        font-size: 11px;
        left: 8px;
        position: absolute;
        top: 10px;
    }
    
    .dropdowns.languages {
        width: 100px;
    }
    
    .dropdowns.active > a:hover {
        background: #f1f1f1 none repeat scroll 0 0;
    }
<div class="toparea-right">
   <ul class="setting-area">
      <li>
         <a href="#"><i class="far fa-newspaper"></i></a>
         <span class="notifi-count" id="displayNotiCount">00</span>
         <a href="#" class="a-left">Notifications</a>
         <div class="dropdowns">
            <ul class="drops-menu">
               <li>
                  <a href="view-post.php" onclick="window.location.href('view-post.php')" title="">
                     <div class="mesg-meta-notification">
                        <h6>Bruce Wayne</h6>
                        <span>is commented in your post!</span>
                        <i>0 min ago</i>
                     </div>
                  </a>
               </li>
            </ul>
         </div>
      </li>
   </ul>
</div>

我附加了CSS和HTML代码,并尝试了它的功能,但是URL在另一个选项卡中打开。我需要在同一标签中打开网址,请告诉我解决方案如何解决此问题。

3 个答案:

答案 0 :(得分:0)

在您的代码下拉列表中从未显示。

我认为,您在点击“通知”时,必须通过切换(添加和删除)<a href="#" class="a-left"> Notifications </a>标签上的“活动”类来切换(隐藏/显示)下拉菜单。

您的下拉列表一旦可见。点击即可按照您的意愿进行。

示例工作代码:

    <a href="#" class="a-left" onClick="toggleDropdownVisibility()">Notifications</a>
  <script>
    function toggleDropdownVisibility(event) {
      var notificationBell = event.target;
      if (notificationBell.classList.contains('active')) {
        notificationBell.classList.remove('active');
      } else {
        notificationBell.classList.add('active');
      }
    }
    </script>

除此之外,请删除onclick="window.location.href('view-post.php')",因为window.location.href不是一个函数,而是一个可以分配url的属性。像window.location.href='view-post.php'一样。但是您可以完全删除不需要的onclick。

答案 1 :(得分:0)

您的代码在这里看起来不错,除了我不明白为什么opacity:0 css类上有visibility:hidden.dropdown。这些使您的控件无法访问。 但是,一旦我删除了CSS中的这2个属性(对最新版本的Chrome而言)对我来说有用

我的建议

对于标签,您可以使用: https://bootstrap-tagsinput.github.io/bootstrap-tagsinput/examples/。不需要太多自定义JS。

答案 2 :(得分:0)

我对此有解决方案,我尝试过并且可以正常工作。

<div class="toparea-right">
   <ul class="setting-area">
      <li>
         <a href="#"><i class="far fa-newspaper"></i></a>
         <span class="notifi-count" id="displayNotiCount">00</span>
         <a href="#" class="a-left">Notifications</a>
         <div class="dropdowns"  id="MmailNoti">
            <ul class="drops-menu">
               <li>
                  <a href="view-post.php" onclick="window.location.href('view-post.php')" title="">
                     <div class="mesg-meta-notification">
                        <h6>Bruce Wayne</h6>
                        <span>is commented in your post!</span>
                        <i>0 min ago</i>
                     </div>
                  </a>
               </li>
            </ul>
         </div>
      </li>
   </ul>
</div>

<script>
            // When the user clicks on div, open the popup
            function myFunction() {
                var popup = document.getElementById("MmailNoti");
                popup.classList.toggle("show");
            }
        </script>