为什么它被点击了两次?

时间:2016-09-24 20:20:32

标签: javascript jquery html

<li class="nav-parent">
    <a><i class="fa fa-list-alt" aria-hidden="true</i><span>Forms</span>
    </a>
    <ul class="nav nav-children" id="dd">
       <li>
          <a href="{:url('edit/Form/getone')}"><span class="text"> Editors</span>
          </a>
      </li>
      <li>
          <a href="{:url('edit/Form/getone')}"><span class="text"> Editors</span>
          </a>
      </li>
    </ul>
</li>

嗨,你可以看到我有一个导航栏部分,我正在使用点击功能,但是当我点击时,它会发出两次警报。有谁知道为什么?谢谢李

   $('li.nav-parent ul li a').click(function(){
    alert(1);

   });

4 个答案:

答案 0 :(得分:1)

我猜你的HTML Construct附近有一个问题

$(document).ready(function(){
    alert("inside function");
    $(".month").click(function(e){
         e.preventDefault();
         var m = $(this).attr("id") // or you can use this.id
         alert("current  selected month"+m);
         $.ajax({
            type : "POST",
            url : "Controller?action=month",
            data : m,
            success : function(data) {
                alert("sucess");
            }
         });
     });
});

在上面的代码中       <li class="nav-parent"> <a><i class="fa fa-list-alt" aria-hidden="true</i><span>Forms</span> </a> 未正确关闭。

尝试下面一个

<i class="fa fa-list-alt" aria-hidden="true</i>
$(function(){
  $('li.nav-parent ul li a').click(function(e) {
      e.preventDefault();
      alert(1);
    });
})

答案 1 :(得分:0)

您的代码中出现

错误:<a><i class="fa fa-list-alt" aria-hidden="true</i><span>Forms</span>缺少&#34;在</i>之前 修复后,仅提醒一次。 https://jsfiddle.net/u4s7wmhg/1/

答案 2 :(得分:0)

正如其他用户所指出的那样,您在代码中错放了>

另外 你试图在你的jquery中选择哪个有两个匹配(由于未闭合的大括号而导致的事件传播),即$('li.nav-parent ul li a')匹配每个li以及导致事件每次触发两次的匹配li > a元素点击。

答案 3 :(得分:0)

谢谢你们。但事实并非如此。 :(我刚刚发现的原因是因为我在某处以某种方式加载了这个点击功能。但是谢谢你的努力。