Javascript 为什么.change()不是';在jquery查询更改输入值后执行

Javascript 为什么.change()不是';在jquery查询更改输入值后执行,javascript,jquery,html,Javascript,Jquery,Html,$(“body”).on('change','.pp',function(){ var价格=$(“.pp”).val(); 价格=parseInt(价格); 变量数量=$(“.ss”).val(); 数量=parseInt(数量); 风险值金额=(价格*数量); 美元(“.rr”).val(金额); }); /*因此,从我认为的第一个值是0开始,它被更改为上面jquery指定的值,直到这是正常的,但问题出现在下面,另一个jquery添加了几个金额(.pricing),并将值指定给(“#total

$(“body”).on('change','.pp',function(){
var价格=$(“.pp”).val();
价格=parseInt(价格);
变量数量=$(“.ss”).val();
数量=parseInt(数量);
风险值金额=(价格*数量);
美元(“.rr”).val(金额);
});
/*因此,从我认为的第一个值是0开始,它被更改为上面jquery指定的值,直到这是正常的,但问题出现在下面,另一个jquery添加了几个金额(.pricing),并将值指定给(“#totalAmount”)*/
$(文档).on('change','pricing',function(){
var合计=0;
$(“.pricing”)。每个(函数(){
数量=parseInt($(this).val());
如果(!isNaN(数量)){
总数+=数量;
}
});
美元(“#总额”).val(总额);
});
/**/

只有当用户更改某个内容时才会自动触发
更改事件,而不是当Javascript更改该内容时。你需要自己触发它

更改行:

$(".rr").val(amount);
致:


change
事件仅在用户更改某个内容时自动触发,而不是在Javascript更改该内容时触发。你需要自己触发它

更改行:

$(".rr").val(amount);
致:


你需要自己触发它。为此,您可以使用以下代码

$("body").on('change' , '.pp',function(){
var price = $(".pp").val();
price = parseInt(price);
var quantity = $(".ss").val();
quantity = parseInt(quantity);
var amount = (price*quantity);
$(".rr").val(amount);
$(".pricing").trigger('change');
// or $(".pricing").change();
});

你需要自己触发它。为此,您可以使用以下代码

$("body").on('change' , '.pp',function(){
var price = $(".pp").val();
price = parseInt(price);
var quantity = $(".ss").val();
quantity = parseInt(quantity);
var amount = (price*quantity);
$(".rr").val(amount);
$(".pricing").trigger('change');
// or $(".pricing").change();
});
我给你一个机会,但不能解决你目前的问题

最后请注意js代码,一旦更改了数据类型的值,类名将自动更改,背景颜色将自动更改

核心代码是Object.defineProperty,相关框架是Vue

let bonusDiv=document.getElementById('bonusDiv');
Object.defineProperty(bonusDiv,“数据类型”{
对,,
设置:函数(值){
开关(值){
案例“x1”:
this.className='red';
打破
案例“x2”:
this.className='blue';
打破
案例“x3”:
this.className='purple';
打破
}
}
});
bonusDiv['data-type']='x1';
log('您设置了bonusDiv数据类型,因此bonusDiv className自动更改为=>'+bonusDiv.className);
bonusDiv['data-type']='x2';
log('您设置了bonusDiv数据类型,因此bonusDiv className自动更改为=>'+bonusDiv.className);
bonusDiv['data-type']='x3';
log('您设置了bonusDiv数据类型,因此bonusDiv className自动更改为=>'+bonusDiv.className)
.red{
背景色:红色;
}
蓝先生{
背景颜色:蓝色;
}
紫色{
背景颜色:紫色;
}
bonusDiv
我给你一个答案,但不能解决你目前的问题

最后请注意js代码,一旦更改了数据类型的值,类名将自动更改,背景颜色将自动更改

核心代码是Object.defineProperty,相关框架是Vue

let bonusDiv=document.getElementById('bonusDiv');
Object.defineProperty(bonusDiv,“数据类型”{
对,,
设置:函数(值){
开关(值){
案例“x1”:
this.className='red';
打破
案例“x2”:
this.className='blue';
打破
案例“x3”:
this.className='purple';
打破
}
}
});
bonusDiv['data-type']='x1';
log('您设置了bonusDiv数据类型,因此bonusDiv className自动更改为=>'+bonusDiv.className);
bonusDiv['data-type']='x2';
log('您设置了bonusDiv数据类型,因此bonusDiv className自动更改为=>'+bonusDiv.className);
bonusDiv['data-type']='x3';
log('您设置了bonusDiv数据类型,因此bonusDiv className自动更改为=>'+bonusDiv.className)
.red{
背景色:红色;
}
蓝先生{
背景颜色:蓝色;
}
紫色{
背景颜色:紫色;
}

bonusDiv
不,如果您使用code更改值,它将不会执行。那么我如何实现下面的jquery,因为我希望我的代码更改值呢?
$(“body”)。在('change','.pp',function(){…})
上,当前形式的
将分配(first
.pp
元素乘以first
.ss
元素的结果所有
.rr
元素。因此,
#totalAmount
将始终是:((first
.pp
元素乘以first
.ss
元素)乘以
.pricing
元素的数量)@adernerk了解vueno,如果您使用code更改值,它将不会执行,那么我如何实现下面的jquery,因为我希望我的代码更改值呢?
$(“body”)。在('change','.pp',function(){…})
的当前形式中,将分配(first
.pp
元素乘以first
.ss
元素)的结果所有
.rr
元素。因此,
#totalAmount
将始终是:((first
.pp
元素乘以first
.ss
元素)乘以
.pricing
元素的数量)@adernerk了解有关vuecan的更多信息吗?这只对绑定事件处理程序很重要,它与触发事件无关。您能详细说明一下吗?这只对绑定事件处理程序重要,与触发事件无关。