【问题标题】:How can I trigger the same option again? [duplicate]如何再次触发相同的选项? [复制]
【发布时间】:2019-01-18 15:04:03
【问题描述】:

有没有办法再次触发相同的选项并获得警报:

  $(document).on('change', '.item-select', function() {
    
    var optionValue = $(this).val();
    alert(optionValue);

  });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>


 <select class="item-select">
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="mercedes">Mercedes</option>
  <option value="audi">Audi</option>
</select> 

我想单击Saab 并收到警报Saab,然后立即再次单击Saab 并收到警报。

【问题讨论】:

  • 如果您点击已选择的选项,您想提醒吗?
  • 这只会造成无限循环?除非您想指定最大点击次数/提醒次数。
  • 是的,我不使用选项框来选择某些东西。我只是想要它提醒我点击的名字。而且我必须能够再次单击相同的名称并获得相同的警报

标签: jquery select onclick onchange


【解决方案1】:

添加一个空白值并重置不会触发change 事件的选择。

我想你已经问过this question here

$(document).on('change', '.item-select', function() {
  var optionValue = $(this).val();
  $('option', this).first().prop('selected', true)
  alert(optionValue);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>


<select class="item-select">
  <option>Select make...</option>
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="mercedes">Mercedes</option>
  <option value="audi">Audi</option>
</select>

【讨论】:

  • 这并不总是可行的,具体取决于 UI 要求。另外,它不是必需的,因为可以在不添加冗余选项的情况下执行 OP 需要的操作。有关详细信息,请参阅副本。
  • 我明白这一点。但是考虑到我的回答中指向同一问题的链接更清楚地说明了 OP 试图实现的目标,OP 并未排除它。
猜你喜欢
  • 2021-11-11
  • 1970-01-01
  • 2014-10-27
  • 1970-01-01
  • 2017-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多