jQuery和(this)中的嵌套函数

时间:2017-06-13 20:26:29

标签: javascript jquery

抱歉,这个问题是如此基本,但我无法理解......

我想知道如何将这个javascript(jquery)转换为可以从处理程序调用的函数并使用$(this),因为我有许多需要使用此处理程序的元素。

这里是完整的jquery atm ..

 $(document).ready(function(){

  $(document).on('keyup', '.order-item', function(){
    var price = +$(this).data('price');
    var hmany = +$(this).find('.quantity').val();
    var item = $(this).data('name');
    var subTotal = price * hmany;


    $('.confirm-ul').append('<li>' + item + ' x ' + hmany + ' = €' + subTotal + '</li>');

  });
});

所以我想把这个(下面)放到一个函数中并从处理程序中调用它。我遇到的问题是当代码在它自己的函数中时(这个)不起作用。

    var price = +$(this).data('price');
    var hmany = +$(this).find('.quantity').val();
    var item = $(this).data('name');
    var subTotal = price * hmany;


    $('.confirm-ul').append('<li>' + item + ' x ' + hmany + ' = €' + subTotal + '</li>');

谢谢

1 个答案:

答案 0 :(得分:2)

您可以这样做:

$(document).ready(function(){
    $(document).on('keyup', '.order-item', anotherFunction);
});
function anotherFunction() {
    var price = +$(this).data('price');
    var hmany = +$(this).find('.quantity').val();
    var item = $(this).data('name');
    var subTotal = price * hmany;
    $('.confirm-ul').append('<li>' + item + ' x ' + hmany + ' = €' + subTotal + '</li>');
}