Jquery上有多个带keyup的函数?

问题描述 投票:0回答:1

我需要修改 ID 输入文本的两个功能,使用 keyup 用Jquery,例如,我选择了选项编号为 1 而在我的脚本中,我为id写了一个函数keyup 1和其他为数 2为了知道它是否有效,我使用 alert但总是用默认的ID来工作。

$('#selector').change(function() {
  $('#1,#2').attr('id', $(this).val());
});
$(document).ready(function() {
  $('#1').keyup(function() {
    alert("OPTION 1 SELECTED");
  });
  $('#2').keyup(function() {
    alert("OPTION 2 SELECTED");
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<select id="selector">
  <option>1</option>
  <option>2</option>
</select>
<input id="1" type="text">

有什么问题吗?

jquery keyup
1个回答
0
投票

你是根据元素的原始ID来绑定的。如果你想让绑定跟随ID的变化,你必须使用事件授权。

$('#selector').change(function() {
  $('#1,#2').attr('id', $(this).val());
});
$(document).ready(function() {
  $(document).on("keyup", '#1', function() {
    alert("OPTION 1 SELECTED");
  });
  $(document).on("keyup", '#2', function() {
    alert("OPTION 2 SELECTED");
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<select id="selector">
  <option>1</option>
  <option>2</option>
</select>
<input id="1" type="text">

但这似乎是一种奇怪的方式。为什么不直接使用一个单一的处理程序来完成

alert("Option " + $("#selector").val() + " selected");

0
投票

希望能帮到你

$(document).ready(function() {
  $('#selector').change(function() {

    $('#1,#2').attr('id', this.value);
  });

  $('input[type="text"]').keyup(function() {
    alert("OPTION "+$(this).attr('id')+" SELECTED");
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<select id="selector">
  <option value="1">1</option>
  <option value="2">2</option>
</select>
<input id="1" type="text">
© www.soinside.com 2019 - 2024. All rights reserved.