代码之家  ›  专栏  ›  技术社区  ›  Mona Coder

关于更改动态添加的选择选项的问题

  •  0
  • Mona Coder  · 技术社区  · 6 年前

    我正在研究下面的代码。如何对动态添加的选择选项进行更改,以便在以编程方式更改选择时引起注意?

    $(document).ready(function() {
      setTimeout(function() {
        $("div").append('<select id="color"><option value="khaki">Khaki</option> <option value="green">Green</option> <option value="gold">Gold</option><option value="red">Red</option> </select>');
      }, 4000);
    
      setTimeout(function() {
        $("#color option:eq(2)").attr("selected", "selected");
      }, 6000);
      
      $('#color').on('change', function() {
        $('body').css('background', this.value);
      });
      
    });
    body {
      padding: 20px;
    }
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <div></div>
    1 回复  |  直到 6 年前
        1
  •  1
  •   Alex Kudryashev    6 年前
    1. 使用委托处理 change 事件。
    2. 按程序触发事件。

    $(document).ready(function() {
      setTimeout(function() {
        $("div").append('<select id="color"><option value="khaki">Khaki</option> <option value="green">Green</option> <option value="gold">Gold</option><option value="red">Red</option> </select>');
      }, 4000);
    
      setTimeout(function() {
        $("#color option:eq(2)").attr("selected", "selected")
        .change();
      }, 6000);
      
      $('body').on('change','#color', function() {
        $('body').css('background', this.value);
      });
      
    });
    body {
      padding: 20px;
    }
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <div></div>