$("#buy_price").blur(function(){
var price = $("#buy_price").val();
var num = $("#buy_num").val();
$("#buy_result").html(price*num);
});
$("#buy_num").blur(function(){
var price = $("#buy_price").val();
var num = $("#buy_num").val();
$("#buy_result").html(price*num);
});
这是原来的语句,因为里边的执行内容是一样的,怎么合并?
方法 1
如果这几个元素没什么关系的话,可以采取封装函数的方法减小粒度:
感谢@Zephor 和@蛋蛋超人 提醒,此处确实有误,我改正。
$("#buy_price").blur(function(){
price_num();
});
$("#buy_num").blur(function(){
price_num();
});
function price_num() {
var price = $("#buy_price").val();
var num = $("#buy_num").val();
$("#buy_result").html(price*num);
};
一定要明白,jQuery是利用了JavaScript的特性扩展了语法,原生js在任何时候都是可用的,包括在jQuery的动作里面嵌套。
方法 2
还有一种方法,非常简单:
$("#buy_price,#buy_num").blur(function(){
var price = $("#buy_price").val();
var num = $("#buy_num").val();
$("#buy_result").html(price*num);
});
逗号隔开即可。
楼上方法一有问题,正确的应该是:
$("#buy_price").blur(function(){ price_num(); }); $("#buy_num").blur(function(){ price_num(); });
或者:
$("#buy_price").blur(price_num); $("#buy_num").blur(price_num);