IE - PullRequest
       28

IE

1 голос
/ 18 ноября 2011

У меня есть несколько переключателей jquery ui, ярлыки которых содержат изображение и текст. Во всех других браузерах при нажатии на изображение кнопка действует правильно (обновляет значение). IE будет обновлять значение только при нажатии на текст. Кнопка выглядит так, как будто она меняет состояние, но значение не меняется.

Я нашел других с такой же проблемой, но без разрешения, которое работает. Вот jsfiddle, демонстрирующий проблему. Нажмите на изображение и проверьте значение, затем нажмите кнопку за пределами изображения, и значение изменится. Конечно, вам нужно взглянуть на это в ie.

http://jsfiddle.net/nJwbh/14/

Ответы [ 3 ]

2 голосов
/ 19 ноября 2011

решение, данное OhCaN, не сработало для меня, но следующее помогло

$("fire when").ready(function(e){
    if ($.browser.msie) {
        $("input:radio").parent().find("img").click(function () {
            $("#" + $(this).parents("label").attr("for")).click();
        });
    }
});
1 голос
/ 18 ноября 2011

IE ожидает потери фокуса на входящем радио, прежде чем отправлять событие. Попробуйте добавить следующее:

$("fire when").ready(function(e){
    if ($.browser.msie) {
        $('input:radio').click(function () {
            this.blur();
            this.focus();
        });
    }
});

Кстати, если вы собираетесь сказать, что нашли других с такой же проблемой, но решение не сработало, пожалуйста, добавьте ссылки на то, что вы уже пробовали.

0 голосов
/ 25 июля 2012

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

$("fire when").ready(function(){
     $("label img").click(function (e) {
        var label = $(this).parents("label");
        if (label) {
            e.stopPropagation();
            label.click();
            $("#" + label.attr("for")).triggerHandler("click");
        }
        return false;
    });
 });

Я не использую $ .browser, поэтому поведение во всех браузерах одинаковое.

Пример JSFiddle http://jsfiddle.net/rcollette/KfEmG/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...