加载时jQuery触发器功能不起作用

时间:2013-05-07 18:53:38

标签: jquery

我有以下jQuery触发keyup上的函数。

$(document).ready(function() {
  $("#calc").on("keyup", "input[type='text']", function() {
  calculateSum(this);
  });
calculateSum();
});

函数calculateSum在这里找到:http://jsfiddle.net/pmetzger/ANp8u/2/

如果我将一个值作为默认值加载到输入字段中,很明显computeSum不会触发,因为它不是键盘。

我确实需要能够在输入字段中加载一个默认值,我需要在负载时触发calculateSum函数,以防有需要计算的值。我在document.ready的末尾添加了calculateSum()函数,但它只会加载全局子总计。我需要它运行,好像我在值字段中键入。我也试过触发事件,但也没有运气。

我已经在那里放了一些默认值进行测试。

3 个答案:

答案 0 :(得分:1)

试试这个

var $elem = $('input[type="text"]', "#calc");

$elem.each(function($input) {
    if($input.val()) {
       $input.trigger('keyup');
    }
});

答案 1 :(得分:0)

你可以这样做来触发第一个元素上的绑定事件,你不需要在所有元素上触发它,因为它将运行X元素。

$(document).ready(function() {
  $("#calc").on("keyup", "input[type='text']", function() {
     calculateSum(this);
  });
  $("input[type='text']").trigger("keyup");
});

答案 2 :(得分:0)

您需要在输入上调用触发器或手动运行它们,如下所示:

$(document).ready(function() {
  //Bind the event
  $("#calc").on("keyup", "input[type='text']", function() {
    calculateSum(this);
  }).find("input[type='text']").each(function() {
      calculateSum(this);
  });
});