通过触发器更改jQuery的方法不起作用

时间:2019-07-16 07:05:42

标签: javascript jquery

HTML:

<select id="g_contracts">
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
</select>

JS:

$(document).ready( function() {
    $("#g_contracts").trigger("change");

    $("#g_contracts").on("change", function() {
         alert(44);
    });
});

好吧,当我直接更改选择器时会发生警报,​​但是trigger("change")不会引起任何后果。

我错过了什么?

https://jsfiddle.net/c7t398mf/2/

2 个答案:

答案 0 :(得分:1)

将事件处理程序分配给元素后,触发事件:

$(document).ready( function() {
  $("#g_contracts").on("change", function() {
    alert(44);
  });
  $("#g_contracts").trigger("change");
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id="g_contracts">
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
</select>

答案 1 :(得分:1)

trigger()方法将触发指定的事件以及所选元素的事件默认行为(例如表单提交)。

    $(document).ready( function() {
    
      $("#g_contracts").on('change',function(){
        alert("44");
      });

      $("#g_contracts").trigger('change');

    });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <select id="g_contracts">
      <option value="1">1</option>
      <option value="2">2</option>
      <option value="3">3</option>
    </select>