首页 > jquery如何同时绑定N个事件

jquery如何同时绑定N个事件

$("#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);
【热门文章】
【热门文章】