[英]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.