简体   繁体   English

.click事件调用过两次?

[英].click event called twice?

I am not sure whats wrong but I am trying this code in chrome or Firefox and I am getting the event to be triggered twice any help? 我不确定发生了什么问题,但是我正在chrome或Firefox中尝试使用此代码,并且该事件被两次触发两次,有什么帮助吗? I am geting an empty extra "< li > < /li>" 我得到一个空的多余“ <li> </ li>”

HTML code HTML代码

  <div id="nav">
 <ul>
   <li>Coffee</li>
    <li>Tea</li>
    <li>Milk</li>
    <li>Bread</li>
 </ul>

  <!-- Input field -->

  <input type="submit" name="search" value="Add" id="submit" style="float:   right" />
 <div style="overflow: hidden; padding-right: .5em;">
  <input id="box" type="text" name="add" value="" style="width: 100%;" />
  </div>

</div>

Jquery code jQuery代码

<script>


  $('#submit').click(function(e){

      var add = $("#box").val();
         if(add !="")
             $("#nav ul").append("<li>"+add+"<li>");
       e.preventDefault();
       e.stopPropagation();
   });

   $('#box').keypress(function(e){
       var add = $("#box").val();
       if(e.which == 13)//Enter key pressed
       $("#nav ul").append("<li>"+add+"<li>");

    });


 </script> 

The click event is not being triggered twice, the problem is you are doing this click事件未触发两次,问题在于您正在执行此操作

$("#nav ul").append("<li>"+add+"<li>"); 

Which is two open <li> tags. 这是两个打开的<li>标记。 So it gets outputted as <li>entered text</li> and <li></li> . 因此它被输出为<li>entered text</li><li></li> Do this instead: 改为这样做:

$("#nav ul").append("<li>"+add+"</li>"); //close the tag

See this fiddle 看到这个小提琴

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM