如何仅在输入更改时启动我的jquery函数,而不是在页面加载时?

时间:2015-10-07 10:20:59

标签: jquery

我有一个选择框,它会自动自动选择输入字段的相应值。它运作得很好:

<input id="count" value="2.00" type="number">

<select class="autoselect">
  <option data-number="1000000000000" selected value="dog">dog</option>
  <option data-number="2000000000000" value="horse">horse</option>
  <option data-number="4000000000000" value="cat">cat</option>
  <option data-number="5000000000000" value="bird">bird</option>
</select>

以下是查询代码:

$(document).ready(function(){
    var count = 1000; 
    $('#count').change(function () {
            var that = parseInt($(this).val()*Math.pow(count, 4), 10);                          
            $('.autoselect option:gt(0)').each(function () {
                $(this).prop('disabled', ($(this).data('number') < that))
                .prop('selected', ($(this).data('number') >= that && $(this)
                .prev().data('number') < that));
            })
            if (that <= $('.autoselect option:eq(1)').data('number')) $('.autoselect option:eq(1) ').prop('selected', true);
            $('select.autoselect option[data-number=0]').prop('disabled', false);       
        }).change()
}

我想要实现的目标实际上是一件简单的事情。在页面加载时,&#34; dog&#34;应始终选择。只有通过更改输入,我的脚本才能开始工作。但它已经在选择&#34; horse&#34;在页面加载时,即使我在输入更改时编写了该函数。

1 个答案:

答案 0 :(得分:3)

你的第二个.change()函数在页面加载时触发此事件。没有回调的jQuery事件函数是事件触发器。只需在代码末尾删除第二个.change()。