Windows 8 разделяет сбой цели с JQuery - PullRequest
10 голосов
/ 30 марта 2012

Я занимаюсь разработкой приложения, которое получает contente (URI), и тестирую его с помощью общего доступа к IE10.

Проблема в том, что мои элементы (span, div или кнопки), с которыми связан обработчик события onclick, закрывают панель общего доступа при втором щелчке. Второй щелчок в окне любого элемента вызывает сбой.

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

После некоторого времени ручной отладки я нашел фрагмент кода, который вызывает ошибку: lib Jquery. Если Jquery присутствует на странице, это вызывает сбой в панели общего доступа.

Невозможно отладить это с помощью Visual Studio, потому что этот сбой происходит только у меня нет отладчика подключен. С подключенным к нему отладчиком все работает нормально.

Кто-то может помочь в этом? Смотрите мою простую страницу ниже

<!DOCTYPE html>
<html>

    <head>
        <title></title>
        <!-- WinJS references -->
        <script src="//Microsoft.WinJS.0.6/js/base.js"></script>
        <script src="//Microsoft.WinJS.0.6/js/ui.js"></script>
        <script src="/js/default.js" type="text/javascript"></script>
        <script src="/js/jquery-1.7.2.js" type="text/javascript"></script>
        <script>
            var curr;

            function test() {
                if (curr) {
                    curr.className = "cls1";
                }

                curr = event.srcElement;
                curr.className = "cls2";
            }
        </script>
        <style>
            .cls1 {
                background-color: #f00;
                cursor: pointer;
            }
            .cls2 {
                background-color: #0094ff;
                cursor: pointer;
            }
        </style>
    </head>

    <body>
        <h1>Share</h1>
        <br />
        <div onclick="test();" class="cls1">Button</div>
        <div onclick="test();" class="cls1">Button</div>
    </body>

</html>

Спасибо!

1 Ответ

1 голос
/ 12 июня 2012

попробуйте вместо этого:

<div onclick="javascript:test(); class="cls1">Button</div>

с необязательным:

/* Your own code is good enough but i wanted to create another point of view */
var curr;

function test() {
    curr = event.srcElement;
    if ($(curr).hasClass("cls1")) {
        $(curr).removeClass("cls1")
        $(curr).addClass("cls2")
    }
});

или другим способом сделать это:

$(document).ready(function () {
    $("div").each(function () {
        $(this).click(function () {
            if ($(this).hasClass("cls1")) {
                $(this).removeClass("cls1")
                $(this).addClass("cls2")
            }
        });
    });
});

Пожалуйста, сообщите мне, если можетеувидеть любые изменения.Я ответил так (вслепую), потому что думать только о том, имеет ли смысл здесь, есть проблема с js, и мне интересно, пока у вас есть jquery lib, почему вы не используете его?хорошо, это еще один вопрос, конечно.Если вы считаете, что мой ответ не соответствует вашему вопросу, попробуйте предоставить нам как можно больше информации для решения этой проблемы.

...