JQuery Highlight применяет тонну, как этого избежать - PullRequest
1 голос
/ 17 декабря 2011

Я делаю сайт для бронирования мест в поезде.В форме необходим калькулятор цены, чтобы показать клиенту общую сумму, когда он / она выбирает услугу, количество пассажиров и т. Д.

Чтобы сделать более очевидным изменение общей стоимости, я использовал выделение jqВлияние на DIV, просто чтобы привлечь больше внимания.

Проблема в том, что я выделил его, когда слайдер скользит, поэтому, если я перейду от 0 до 56 (максимальное количество мест в вагоне поезда), выделение происходит 56раз.

Надеюсь, вы могли бы помочь или предложить лучшую идею.

Вот код:

$(document).ready(function(){   
    /**/
    function calculateTotal(){
        //var unitPrice = 2, paperTypes = 2, printedSides = 2;
        var precio_base  = $('#categoria option:selected').val();
        var cant_adultos = $("#adultos").val();

        var cant_ninos = $("#ninos").val();
        var sum = parseInt(cant_adultos) + parseInt(cant_ninos);
        var precio_productos = $("input[name^='servicio']").parseNumber();

        var totalCost = parseInt(precio_base)*parseInt(sum);

        $('#total-box').html("$"+totalCost);
        $('#total-box').effect("highlight", {}, 1000);
    }

    $('#categoria,#adultos,#ninos').change(calculateTotal).highlight();

});

Страница на http://www.micontrol.cl/~mvargas/wordpress/wp-transatacama/reservas-rapidas/form-reservas.php.

Ответы [ 2 ]

2 голосов
/ 17 декабря 2011

Если вы используете виджет-слайдер из пользовательского интерфейса jQuery (пользовательский интерфейс jQuery включен на страницу, на которую вы ссылаетесь), вы можете привязаться к событию stop вместо change. Как то так:

$("#yourSlider").bind("slidestop", calculateTotal).highlight();
0 голосов
/ 17 декабря 2011

Вам нужно прекратить запуск события изменения на каждом шаге слайда.Просто запустите это при остановке события.например: http://jsbin.com/atolax/2

...