JQuery -> 新的 span id 点击功能没有响应

JQuery -> New span id click function is not responding

我正在尝试使用 CSS 过渡创建一个带有箭头的跨度以打开和关闭,但它仅在我单击箭头打开但不响应关闭时有效。

$(document).ready(function(){
  $('#openarrow').click(function(){
   var dsptmt = setTimeout(function(){ $('#usernameid').css('display', 'inline-block'); },1100);
   $('.chip').width('170');
   $('.arrow').removeClass('arright');
   $('.arrow').addClass('arleft');
   $('#openarrow').attr('id', 'closearrow');
  })

  $('#closearrow').click(function(){
    $('.arrow').removeClass('arleft');
    $('.arrow').addClass('arright');
    $('#usernameid').css('display', 'none');
    $('.chip').width('100');
    $('#closearrow').attr('id','openarrow');
  });
});
.chip {
  font-family: 'Abel', sans-serif;
  display: inline-block;
  padding: 0 25px;
  width:100px;
  height: 50px;
  font-size: 16px;
  color: blue;
  line-height: 50px;
  border-radius: 25px;
  background-color: #f1f1f1;
  transition: width, 2s ;
}

#usernameid {
    display:none;
}
.arrow {
  border: solid black;
  border-width: 0 3px 3px 0;
  display: inline-block;
  padding: 5px;
}

.arright {
  transform: rotate(-45deg);
  -webkit-transform: rotate(-45deg);
}

.arleft {
  transform: rotate(135deg);
  -webkit-transform: rotate(135deg);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="row">
   <div class="w3-container my-1 py-1 w3-light shadow" style="position:relative;">
     <div class="col-lg-9 col-md-6 col-sm-4">
       <div class="chip">
         <div id="usernameid" style="color:darkblue;"> FULL NAME </div>
         <span id="openarrow" class="float-right"><a href="#"><i class="arrow arright"></i></a></span>
       </div>
     </div>
   </div>
</div>

我需要 #closearrow 来 return 当我点击打开和关闭箭头时,所有更改都是默认值。

此问题是在您应用事件处理程序时不存在 ID 为 #closearrow 的元素。如果您想保留这种范例,一种选择是使用 事件冒泡 实质上将事件处理程序应用于 .chip 上的 closearrow 元素,因为 .chip 永远存在。见下文。

$(document).ready(function(){
  $('.chip').on('click', '#openarrow', function(){
   var dsptmt = setTimeout(function(){ $('#usernameid').css('display', 'inline-block'); },1100);
   $('.chip').width('170');
   $('.arrow').removeClass('arright');
   $('.arrow').addClass('arleft');
   $('#openarrow').attr('id', 'closearrow');
  })

  $('.chip').on('click', '#closearrow', function(){
    $('.arrow').removeClass('arleft');
    $('.arrow').addClass('arright');
    $('#usernameid').css('display', 'none');
    $('.chip').width('100');
    $('#closearrow').attr('id','openarrow');
  });
});
.chip {
  font-family: 'Abel', sans-serif;
  display: inline-block;
  padding: 0 25px;
  width:100px;
  height: 50px;
  font-size: 16px;
  color: blue;
  line-height: 50px;
  border-radius: 25px;
  background-color: #f1f1f1;
  transition: width, 2s ;
}

#usernameid {
    display:none;
}
.arrow {
  border: solid black;
  border-width: 0 3px 3px 0;
  display: inline-block;
  padding: 5px;
}

.arright {
  transform: rotate(-45deg);
  -webkit-transform: rotate(-45deg);
}

.arleft {
  transform: rotate(135deg);
  -webkit-transform: rotate(135deg);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="row">
   <div class="w3-container my-1 py-1 w3-light shadow" style="position:relative;">
     <div class="col-lg-9 col-md-6 col-sm-4">
       <div class="chip">
         <div id="usernameid" style="color:darkblue;"> FULL NAME </div>
         <span id="openarrow" class="float-right"><a href="#"><i class="arrow arright"></i></a></span>
       </div>
     </div>
   </div>
</div>