Флажок «изменить» не работает в браузере Safari при первом нажатии - PullRequest
0 голосов
/ 05 июня 2019

У меня есть эта функция:

function CompareProduct(product_id) {
    $(document).ready(function() {
        $('#' + product_id).on('change', function() {
            if ($(this).is(':checked')) {
                CheckboxCompare.Add(product_id);
                $('#' + product_id).attr("disabled", true);
            } else if (!$(this).is(':checked')) {
                compare_product_remove(product_id);
                $('#' + product_id).attr("disabled", true);
                $('.compare-product_' + product_id).fadeOut();
            }
        });
    });
}

Отредактировано ... HTML:

{% for product in products %}
    <input class="compare-checkbox" autocomplete="off" type="checkbox" name="{{ product.product_id }}" value="1" id="{{ product.product_id }}" data-toggle="tooltip" title="{{ button_compare }}" onclick="CompareProduct('{{ product.product_id }}');" />
 {% endfor %}

, которая отлично работает в Chrome, Mozilla, но не работает в Safari.В браузере Safari при первом щелчке мыши выбирается только чекбокс ... когда я нажимаю второй раз, флажок снимается, и функция работает.И когда я нажимаю снова, функция также работает.Поэтому первый щелчок флажка в Safari не работает.Как решить эту проблему?

РЕДАКТИРОВАНИЕ: Я нашел решение для своей проблемы ... в браузере Safari также работает нормально:

function CompareProduct(product_id) {
var checkbox = document.getElementById(product_id);
        if (checkbox.checked == true) {
            CheckboxCompare.Add(product_id);
        } else if (checkbox.checked != true){
            compare_product_remove(product_id);  
        }
}
...