Событие щелчка Jquery внутри каждого цикла не работает в IE

Я унаследовал этот фрагмент кода и пытаюсь заставить его работать. Он создает меню выбора, которое используется для фильтрации страницы продуктов. Первоначально он генерировал UL (опции были LI), но теперь он преобразуется в список выбора. Параметры отлично отображаются во всех браузерах, и щелчок отлично работает во всех браузерах, кроме IE (все версии). В IE я могу использовать раскрывающийся список, но ничего не происходит, когда я выбираю вариант.

Я пытался изменить событие, чтобы изменить и выбрать, но это, кажется, только все ломает.

Заранее благодарю за любую помощь!

$.each(hazardClassification, function (i) {
                cleanMenuforClass = hazardClassification[i].toLowerCase().replace(/ /g, '_').replace(/&./g, '_').replace(/\,/g, '').replace('/', '').replace('.', '');


                $("<option/>", {
                    "class": cleanMenuforClass,
                    click: function (event) {
                        $("#legend-inline-search").val("");
                            $("#pipemarker-type-selection div.product-container").css('display', '');
                        var clickedInput = $(this).attr("class");
                        var clickedCheckbox = $(this);
                        if ($(this).is(":selected")) {
                                filterItems(hazardClassification[i], clickedInput, countItems, selectedItemsContainer, clickedCheckbox);

                            } else {
                                removeFilter(hazardClassification[i], clickedInput, countItems, selectedItemsContainer);
                            }

                    }
                }).appendTo("#filter-by-classification select").append('<span>' + hazardClassification[i] + '"<span>');

        });

ОБНОВЛЕНО: нашел обходной путь, который по-прежнему использует jQuery и упрощает работу для фиктивного дизайнера (это я). Есть ли обходной путь для запуска параметра .click событие в IE?


person jennifer    schedule 25.07.2011    source источник


Ответы (2)


Я думаю, что это проблема с IE. Выбор IE (когда задействована опция) всегда имеет не странное поведение.

Я нашел это в группе новостей.

Мы не можем использовать собственные события, чтобы щелкнуть элемент в IE. IE всегда сообщает высоту и ширину, равные 0, для опциональных элементов, поэтому невозможно рассчитать, где должна быть точка клика.

и поэтому я думаю, что вам нужно использовать обходной путь javascript вместо использования события jquery "click"

person Nicola Peluchetti    schedule 25.07.2011
comment
Да, я как бы разобрался с этой частью, что IE просто этого не понимает. Я надеялся на решение jQuery, по крайней мере, на какой-то способ вызвать событие выбора, но, похоже, мне придется попробовать другой метод. - person jennifer; 25.07.2011

Попробуй это

$.each(hazardClassification, function (i) {
                cleanMenuforClass = hazardClassification[i].toLowerCase().replace(/ /g, '_').replace(/&./g, '_').replace(/\,/g, '').replace('/', '').replace('.', '');


                $("option", {
                    "class": cleanMenuforClass,
                    click: function (event) {
                        $("#legend-inline-search").val("");
                            $("#pipemarker-type-selection div.product-container").css('display', '');
                        var clickedInput = $(this).attr("class");
                        var clickedCheckbox = $(this);
                        if ($(this).is(":selected")) {
                                filterItems(hazardClassification[i], clickedInput, countItems, selectedItemsContainer, clickedCheckbox);

                            } else {
                                removeFilter(hazardClassification[i], clickedInput, countItems, selectedItemsContainer);
                            }

                    }
                }).appendTo("#filter-by-classification select").append('<span>' + hazardClassification[i] + '"<span>');

        });
person ShankarSangoli    schedule 25.07.2011
comment
К сожалению, это просто делает так, что параметры не генерируются в IE. Спасибо хоть! - person jennifer; 25.07.2011