繁体   English   中英

在页面加载时触发键盘输入

[英]Trigger keyup on page load

在下面的代码中,我无法触发数量功能。 通常,当我执行下面的数量函数时,我使用keyup ,即,当我开始在数量框中键入内容时。

但是这次,在下面的数量输入框中,我已经从数据库中获取了一个值,因此在页面加载时,我希望函数trigger运行该函数。 那是行不通的。 我该怎么做?

$(document).ready(function() {
  @foreach($products - > items as $item)
    var item = $('#{!! $item->id !!}');
    var ad = JSON.parse(item.attr('data-item'));
    if (item.prop("checked")) {
      $('.panel').append(
        '<div class="container"> ' +
        '<p  class="name" >' + ad.name + '</p>' +
        '<p  class="price" data-price="' + ad.price + '">' + ad.price + '</p>' +
        '<p class="total" ><span class="line-total" name="total" id="total"></span></p>' +
        '<input size="50" type="text" class="form-control quantity"  placeholder=" qty " name="quantity[]" value="{!!$item->pivot->quantity!!}" required/>' +
        '</div>'
      )
    } else {
      $(".panel .container [data-id=" + ad.id + "]").parent().remove();
    }

      quantityFunction();

  @endforeach

更新

<script>
var quantityFunction => function() {

  var container = $(this).closest('div');
        var sum;

        var quantity = Number($(this).val());
        var price = Number($(this).closest('div').find('.price').data('price'));    
        points = Number($(this).closest('div').find('.points').data('points'));  

       container.find(".total span").text(quantity * price);
       container.find(".pts-total span").text(quantity * points);


        sum = 0;



       $(".line-total").each(function(){
       sum = sum + Number($(this).text());
       })    
       }
</script>

为什么不将quantity函数放入非匿名函数中,并在准备好文档时调用它?

var quantityFunction = function() {
  // your code here
}

$( document ).ready(function() {
  quantityFunction ();
});

编辑

JS片段:

var quantityFunction = function() {
  var container = $(this).closest('div');
  var sum;

  var quantity = Number($(this).val());
  var price = Number($(this).closest('div').find('.price').data('price'));
  points = Number($(this).closest('div').find('.points').data('points'));

  container.find(".total span").text(quantity * price);
  container.find(".pts-total span").text(quantity * points);

  sum = 0;

  $(".line-total").each(function() {
    sum = sum + Number($(this).text());
  });
}

不一定要在这里吗?

$('。panel')。on('trigger',' 点击 ',function(){}

$( '面板 ')。在(' 触发', '数量',()的函数

您想在.panel上触发哪个事件?

jQuery方法.on正确格式是

.on( events [, selector ] [, data ], handler )

例如:

$('.panel').on('click','.quantity',function() {} );

更改您的更新代码,

    var $container = $('.panel').closest('div');
    var sum;

    var quantity = Number($('.quantity').val());
    var price = Number($container.find('.price').data('price'));    
    points = Number($container.find('.points').data('points'));  

   $container.find(".total span").text(quantity * price);
   $container.find(".pts-total span").text(quantity * points);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM